Aracılığıyla paylaş


İ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-öncelikli geliştirmeyi, test vakalarınızda onları tanımlamadan önce kaynak kodunda yeni türler ve üyeler oluşturarak destekler.

Visual Studio, iş akışınızda en az kesintiyle yeni türleri ve üyeleri oluşturur. Kod içerisindeki mevcut konumunuzu terk etmeden, türler, yöntemler, özellikler, alanlar veya oluşturucular için iskeletler 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.

Uyarı

Bu makaledeki yönergeler, Visual Studio'da kullanılabilen etkileşimli geliştirme deneyiminin (IDE) en son sürümünü gösterir. Bilgisayarınız bazı 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. IDEkişiselleştirme.

Windows Sınıf Kitaplığı projesi ve Test projesi oluşturma

  1. C# veya Visual Basic'te yeni bir Windows Sınıf Kitaplığı projesi oluşturun. GFUDemo_VB Kullandığınız dile bağlı olarak veya GFUDemo_CSolarak adlandırabilirsiniz.

  2. Çözüm Gezgini'nde, üstteki çözüm simgesine sağ tıklayın veYeni ProjeEkle'yi> seçin.

  3. Yeni bir Birim Testi Projesi (.NET Framework) projesi oluşturun.

Sınıf Kitaplığı projesine başvuru ekleyin

  1. Çözüm Gezgini'nde, birim testi projenizin altında Başvurular girdisine sağ tıklayın ve Başvuru Ekle'yi seçin.

  2. Başvuru Yöneticisi iletişim kutusunda Projeler'i ve ardından sınıf kitaplığı projesini seçin.

  3. Başvuru Yöneticisi iletişim kutusunu kapatmak için Tamam'ı seçin.

  4. Çözümünüzü kaydedin. Artık test yazmaya başlamaya hazırsınız.

Birim testinden yeni sınıf oluşturma

  1. Test projesi UnitTest1 adlı bir dosya içerir. Kod düzenleyicisinde açmak için Çözüm Gezgini'nde bu dosyaya çift tıklayın. Bir test sınıfı ve test yöntemi oluşturuldu.

  2. Sınıf UnitTest1 bildirimini bulun ve AutomobileTest olarak yeniden adlandırın.

    Uyarı

    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 . Sonraki adımda Automobile yazarken öneri modu size yardımcı olur.

  3. TestMethod1() yöntemini bulun ve DefaultAutomobileIsInitializedCorrectly() olarak yeniden adlandırın. Bu yöntemin içinde, aşağıdaki ekran görüntülerinde gösterildiği gibi adlı Automobileyeni bir sınıf örneği oluşturun. Derleme zamanı hatasına işaret eden dalgalı bir alt çizgi belirir ve sol kenar boşluğunda ya da üzerine geldiğinizde doğrudan dalgalı çizginin altında bir Hızlı Eylemler ışık ampulü görünür.

    Visual Basic'te Hızlı Eylemler

    C'de Hızlı İşlemler#

  4. 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.

  5. 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.

  6. 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ırin.

    Yeni Tür Oluştur iletişim kutusu

  7. İletişim kutusunu kapatmak ve yeni dosyayı oluşturmak için Tamam'a tıklayın.

  8. Çözüm Gezgini'nde, 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ü inceleyin. Kod düzenleyicisinde odak hala içindedir AutomobileTest.DefaultAutomobileIsInitializedCorrectlyve bu sayede testinizi en az kesintiyle yazmaya devam edebilirsiniz.

Özellik saplama oluşturma

Ürün belirtiminin Automobile sınıfının Model ve TopSpeed adında iki genel özelliği olduğunu belirttiğini varsayalım. Bu özelliklerin, varsayılan oluşturucu tarafından "Not specified" ve -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.

  1. Test yöntemine aşağıdaki kod DefaultAutomobileIsInitializedCorrectly satırını ekleyin.

    Assert.IsTrue((myAuto.Model == "Not specified") && (myAuto.TopSpeed == -1));
    
  2. Kod, Automobile üzerinde iki tanımsız özelliğe başvurduğundan, Model ve TopSpeed altında dalgalı bir alt çizgi görünür. Model Üzerine gelin ve Hızlı Eylemler hata ampulünü seçin, ardından 'Automobile.Model' özelliği oluştur'u seçin.

  3. Aynı şekilde, TopSpeed özelliği için bir özellik dublörü 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 Model ve TopSpeed özelliklerini başlatacak bir oluşturucu taslağı oluşturmak için bir test yöntemi oluşturacağız. Daha sonra testi tamamlamak için daha fazla kod ekleyeceksiniz.

  1. Sınıfınıza AutomobileTest aşağıdaki ek test yöntemini ekleyin.

    [TestMethod]
    public void AutomobileWithModelNameCanStart()
    {
        string model = "Contoso";
        int topSpeed = 199;
        Automobile myAuto = new Automobile(model, topSpeed);
    }
    
  2. Kırmızı dalgalı çizginin altındaki Hızlı İşlemler hata simgesine tıklayın ve ardından 'Automobile' için constructor oluştur'a tıklayın.

    Automobile sınıf dosyasında, yeni yapıcının yapıcı çağrısında kullanılan yerel değişkenlerin adlarını incelediğini, Automobile sınıfında aynı adlara sahip özellikleri bulduğunu ve yapıcı gövdesinde kod sağlayarak bağımsız değişken değerlerini Model ve TopSpeed özelliklerine depoladığını fark edin.

  3. Yeni oluşturucuyu oluşturduktan sonra, içindeki varsayılan oluşturucuya DefaultAutomobileIsInitializedCorrectlyyapılan çağrının altında dalgalı bir alt çizgi görüntülenir. Hata iletisi, sınıfın Automobile 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

Yeni bir Automobile'nin Model ve TopSpeed özellikleri varsayılan değerlerden başka bir değere ayarlandığında, IsRunning durumuna getirilebileceğini belirtim belirtiyor varsayalım.

  1. Yöntemine AutomobileWithModelNameCanStart aşağıdaki satırları ekleyin.

    myAuto.Start();
    Assert.IsTrue(myAuto.IsRunning == true);
    
  2. Hızlı Eylemler hata uyarı ampulüne, myAuto.Start yöntem çağrısı için tıklayın ve ardından 'Automobile.Start' yöntemini oluştur seçeneğine tıklayın.

  3. Özelliğin Hızlı Eylemler ampulünü IsRunning tıklatın ve ardından 'Automobile.IsRunning' özelliğini oluştur'a tıklayın.

    Automobile sınıfı şimdi adlı bir yöntem Start() ve adlı bir özellik IsRunning içerir.

Testleri çalıştırma

  1. Test menüsündeTü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. DefaultAutomobileIsInitializedCorrectly testi, Assert.IsTrue koşulu False döndürdüğü için başarısız oluyor. AutomobileWithModelNameCanStart sınıfındaki StartAutomobile 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.

    Başarısız olan test sonuçları

  2. Test Sonuçları penceresinde, her testin konumuna gitmek için her test sonucu satırına çift tıklayın.

Kaynak kodu uygulama

  1. Varsayılan yapıcıya aşağıdaki kodu ekleyin, böylece Model, TopSpeed ve IsRunning özelliklerinin tümü, "Not specified", -1 ve False (veya C# için false) olan doğru varsayılan değerleriyle başlatılır.

    public Automobile()
    {
        this.Model = "Not specified";
        this.TopSpeed = -1;
        this.IsRunning = true;
    }
    
  2. Start yöntemi çağrıldığında, Model veya TopSpeed özellikleri varsayılan değerlerinden başka bir değere ayarlanmışsa, IsRunning bayrağını true olarak ayarlamalıdır. NotImplementedException'yı yöntem gövdesinden kaldırın ve aşağıdaki kodu ekleyin.

    public void Start()
    {
        if (this.Model != "Not specified" || this.TopSpeed != -1)
            this.IsRunning = true;
        else
            this.IsRunning = false;
    }
    

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.

    Geçen test sonuçları