İzlenecek yol: Kullanımdan Oluştur özelliğiyle test öncelikli geliştirme
Bu konu başlığında, test öncelikli geliştirmeyi destekleyen Kullanımdan Oluştur özelliğinin nasıl kullanılacağı gösterilmektedir.
Test öncelikli geliştirme , ilk olarak ürün belirtimlerine göre birim testleri yazdığınız ve ardından testlerin başarılı olması için gereken kaynak kodunu yazdığınız yazılım tasarımına yönelik bir yaklaşımdır. Visual Studio, test çalışmalarınızda, tanımlanmadan önce kaynak kodunda yeni türler ve üyeler oluşturarak test öncelikli geliştirmeyi destekler.
Visual Studio, iş akışınızda en az kesintiyle yeni türleri ve üyeleri oluşturur. Geçerli konumunuzu kodda bırakmadan türler, yöntemler, özellikler, alanlar veya oluşturucular için saplamalar oluşturabilirsiniz. Tür oluşturma seçeneklerini belirtmek üzere bir iletişim kutusu açtığınızda, iletişim kutusu kapatıldığında odak hemen geçerli açık dosyaya döner.
Kullanımdan Oluştur özelliği, Visual Studio ile tümleşen test çerçeveleriyle kullanılabilir. Bu konuda, Microsoft Unit Testing Framework gösterilmiştir.
Not
Bilgisayarınız bu makaledeki Bazı Visual Studio kullanıcı arabirimi öğeleri için farklı adlar veya konumlar gösterebilir. Visual Studio'nun farklı bir sürümünü veya farklı ortam ayarlarını kullanıyor olabilirsiniz. Daha fazla bilgi için bkz . IDE'yi kişiselleştirme.
Windows Sınıf Kitaplığı projesi ve Test projesi oluşturma
C# veya Visual Basic'te yeni bir Windows Sınıf Kitaplığı projesi oluşturun.
GFUDemo_VB
Kullandığınız dile bağlı olarak veyaGFUDemo_CS
olarak adlandırabilirsiniz.Çözüm Gezgini üstteki çözüm simgesine sağ tıklayın ve Yeni Proje Ekle'yi>seçin.
Yeni bir Birim Testi Projesi (.NET Framework) projesi oluşturun.
Sınıf Kitaplığı projesine başvuru ekleme
Çözüm Gezgini'da, birim testi projenizin altında Başvurular girdisine sağ tıklayın ve Başvuru Ekle'yi seçin.
Başvuru Yöneticisi iletişim kutusunda Projeler'i ve ardından sınıf kitaplığı projesini seçin.
Başvuru Yöneticisi iletişim kutusunu kapatmak için Tamam'ı seçin.
Çözümünüzü kaydedin. Artık test yazmaya başlamaya hazırsınız.
Birim testinden yeni sınıf oluşturma
Test projesi UnitTest1 adlı bir dosya içerir. Çözüm Gezgini'da bu dosyaya çift tıklayarak kod düzenleyicisinde açın. Bir test sınıfı ve test yöntemi oluşturuldu.
sınıfı
UnitTest1
için bildirimi bulun ve olarak yeniden adlandırınAutomobileTest
.Not
IntelliSense artık IntelliSense deyiminin tamamlanması için iki alternatif sunar: tamamlama modu ve öneri modu. Sınıfların ve üyelerin tanımlanmadan önce kullanıldığı durumlar için öneri modunu kullanın. IntelliSense penceresi açıkken, tamamlama modu ile öneri modu arasında geçiş yapmak için Ctrl+Alt+Ara Çubuğu'na basabilirsiniz. Daha fazla bilgi için bkz . IntelliSense kullanma. Öneri modu, sonraki adımda yazarken
Automobile
size yardımcı olur.TestMethod1()
yöntemini bulun ve olarak yeniden adlandırınDefaultAutomobileIsInitializedCorrectly()
. Bu yöntemin içinde, aşağıdaki ekran görüntülerinde gösterildiği gibi adlıAutomobile
yeni bir sınıf örneği oluşturun. Derleme zamanı hatasını gösteren dalgalı bir alt çizgi görüntülenir ve sol kenar boşluğunda veya üzerine geldiğinizde doğrudan dalgalı çizginin altında hızlı eylemler hatası ampulü görüntülenir.Hızlı İşlemler ampulü seçin veya tıklayın. Türün
Automobile
tanımlanmadığını belirten bir hata iletisi görürsünüz. Ayrıca bazı çözümler sunulur.Tür Oluştur iletişim kutusunu açmak için Yeni tür oluştur'a tıklayın. Bu iletişim kutusu, türü farklı bir projede oluşturmayı içeren seçenekler sağlar.
Visual Studio'ya dosyayı test projesi yerine sınıf kitaplığı projesine eklemesini bildirmek için Proje listesinde GFUDemo_VB veya GFUDemo_CS'e tıklayın. Henüz seçili değilse Yeni dosya oluştur'u seçin ve Automobile.cs veya Automobile.vb olarak adlandırır.
İletişim kutusunu kapatmak ve yeni dosyayı oluşturmak için Tamam'a tıklayın.
Çözüm Gezgini'da, yeni Automobile.vb veya Automobile.cs dosyasının orada olduğunu doğrulamak için GFUDemo_VB veya GFUDemo_CS proje düğümünü arayın. Kod düzenleyicisinde odak hala içindedir
AutomobileTest.DefaultAutomobileIsInitializedCorrectly
ve bu sayede testinizi en az kesintiyle yazmaya devam edebilirsiniz.
Özellik saplama oluşturma
Ürün belirtiminin, sınıfın ve TopSpeed
adlı Model
iki genel özelliği olduğunu belirttiğini Automobile
varsayalım. Bu özelliklerin ve varsayılan oluşturucusunun "Not specified"
-1
varsayılan değerleriyle başlatılması gerekir. Aşağıdaki birim testi, varsayılan oluşturucunun özellikleri doğru varsayılan değerlerine ayarlandığını doğrular.
Test yöntemine aşağıdaki kod
DefaultAutomobileIsInitializedCorrectly
satırını ekleyin.Kod üzerinde
Automobile
iki tanımsız özelliğe başvuracağından veTopSpeed
altında dalgalı bir alt çizgi görünürModel
.Model
Üzerine gelin ve Hızlı Eylemler hata ampulünü seçin, ardından 'Automobile.Model' özelliği oluştur'u seçin.Özelliği için
TopSpeed
aynı şekilde bir özellik saplaması oluşturun.Automobile
sınıfında, yeni özelliklerin türleri bağlamdan doğru şekilde çıkarılır.
Yeni bir oluşturucu için saplama oluşturma
Şimdi ve TopSpeed
özelliklerini başlatmak Model
için bir oluşturucu saptaması oluşturacak bir test yöntemi oluşturacağız. Daha sonra testi tamamlamak için daha fazla kod ekleyeceksiniz.
Sınıfınıza
AutomobileTest
aşağıdaki ek test yöntemini ekleyin.Kırmızı dalgalı çizginin altındaki Hızlı İşlemler hata ampulü'ne tıklayın ve ardından 'Automobile' içinde oluşturucu oluştur'a tıklayın.
Automobile
Sınıf dosyasında, yeni oluşturucunun oluşturucu çağrısında kullanılan yerel değişkenlerin adlarını incelediğini, sınıfında aynı adlara sahip özellikleri bulduğunaAutomobile
ve ve özelliklerinde bağımsız değişken değerlerini depolamak için oluşturucu gövdesinde kod sağladığınaModel
TopSpeed
dikkat edin.Yeni oluşturucuyu oluşturduktan sonra, içindeki varsayılan oluşturucuya
DefaultAutomobileIsInitializedCorrectly
yapılan çağrının altında dalgalı bir alt çizgi görüntülenir. Hata iletisi, sınıfınAutomobile
sıfır bağımsız değişken alan bir oluşturucuya sahip olmadığını belirtir. Parametreleri olmayan açık bir varsayılan oluşturucu oluşturmak için Hızlı Eylemler hata ampulü'ne ve ardından 'Automobile' içinde oluşturucu oluştur'a tıklayın.
Bir yöntem için saplama oluşturma
belirtiminin, ve TopSpeed
özellikleri varsayılan değerlerden başka bir değere ayarlanmışsa Model
yeni Automobile
bir IsRunning
duruma getirilebileceğini belirttiğini varsayalım.
Yöntemine
AutomobileWithModelNameCanStart
aşağıdaki satırları ekleyin.Yöntem çağrısı için Hızlı Eylemler hata ampulü'ne
myAuto.Start
ve ardından 'Automobile.Start' yöntemi oluştur'a tıklayın.Özelliğin Hızlı Eylemler ampulünü
IsRunning
tıklatın ve ardından 'Automobile.IsRunning' özelliğini oluştur'a tıklayın.sınıfı
Automobile
artık adlı bir yöntem ve adlıStart()
IsRunning
bir özellik içerir.
Testleri çalıştırma
Test menüsünde Tüm Testleri Çalıştır'ı>seçin.
Tüm Testleri Çalıştır>komutu, geçerli çözüm için yazılmış tüm test çerçevelerindeki tüm testleri çalıştırır. Bu durumda iki test vardır ve ikisi de beklendiği gibi başarısız olur. Koşul
DefaultAutomobileIsInitializedCorrectly
döndürdüğündenAssert.IsTrue
False
test başarısız oluyor.AutomobileWithModelNameCanStart
sınıfındakiStart
Automobile
yöntemi bir özel durum oluşturacağından test başarısız olur.Test Sonuçları penceresi aşağıdaki çizimde gösterilmiştir.
Test Sonuçları penceresinde, her testin konumuna gitmek için her test sonucu satırına çift tıklayın.
Kaynak kodu uygulama
Aşağıdaki kodu varsayılan oluşturucuya ekleyin; böylece, ve özelliklerinin tümü doğru varsayılan , ve
False
(veyafalse
C# için) değerleriyle-1
"Not specified"
başlatılır.IsRunning
TopSpeed
Model
Start
Yöntemi çağrıldığında, yalnızca veyaTopSpeed
özellikleri varsayılan değerlerinden başka bir değere ayarlanmışsaModel
bayrağı true olarak ayarlamalıdırIsRunning
.NotImplementedException
yönteminin gövdesinden öğesini kaldırın ve aşağıdaki kodu ekleyin.
Testleri yeniden çalıştırma
Test menüsünde Çalıştır'ın üzerine gelin ve ardından Tüm Testler'e tıklayın.
Bu kez testler geçer. Test Sonuçları penceresi aşağıdaki çizimde gösterilmiştir.