C # MS Visual Studio'da birim testi oluşturma örneği

  1. İçerik
  2. icra
  3. 2. Program.cs modül metninin hazırlanması
  4. 2.2. Program sınıfını herkese açık yap
  5. 3. Test edilen programın listelenmesi
  6. 4. Test oluşturma
  7. 4.1. Çözüme yeni bir proje ekleme
  8. 4.2. Çözüm yapısı
  9. 4.3. "UnitTest1.cs" dosyasının metni. [TestMethod] ve [TestClass] özellikleri
  10. 4.4. UnitTest1 modülünün metninde değişiklik yapılması. Test yönteminin adını değiştirme
  11. 4.5. MinApp projesini TestMinApp projesine bağlama
  12. 4.6. UnitTest1.cs modülünün metninde değişiklik yapılması
  13. 4.6.2. TestMin () yöntemi metni
  14. 4.7. UnitTest1.cs modül metni
  15. 5. Testi çalıştırın ve test sonucunu kontrol edin
  16. 6. sonuç. Projeler arası etkileşim

Bu konu, Konsol Uygulaması gibi bir uygulama için Microsoft Visual Studio 2010'da (C #) basit bir Birim Testi oluşturma adım adım işlemini açıklar. Bu örneği kullanarak, kendi Ünite testlerinizi nasıl oluşturacağınızı öğrenebilirsiniz. Örnek ayrıca, Assert sınıfının fonksiyonların çalışmasını test etmek için kullanıldığını da gösterir.

İçerik

Sorunun durumu

Konsol Uygulaması gibi bir uygulama için, üç sayının maksimum elemanını belirleyen Min () fonksiyonunun çalışmasını test eden bir Birim testi geliştirin.

Min () işlevi için test yöntemini TestMin () olarak ayarlayın. İşlevi kontrol et.

icra

1. Konsol Uygulaması şablonunu kullanarak bir uygulama oluşturun

MS Visual Studio 2010'u çalıştırmak için çalıştırın Konsol Uygulaması modelini kullanarak bir proje oluşturmak için aşağıdaki komutlar dizisi çağırılmalıdır:

Dosya -> Yeni -> Proje ...

Sonuç olarak, Yeni Proje penceresi açılır. Pencerede, Konsol Uygulaması şablonunu Şekil 1'de gösterildiği gibi seçin. Şablon, Visual C # sekmesinden seçilir.

Visual C # -> Konsol Uygulaması

Visual C # -> Konsol Uygulaması

Şek. 1. "Yeni Proje" penceresi. Konsol Uygulama Tipi Uygulaması Seçme

2. Program.cs modül metninin hazırlanması

2.1. Modül metnine Min () işlevi ekleyin

Program sınıfının gövdesinde Min () işlevinin metnini ekleyin.

İşlev, genel (statik) ve genel olarak bildirildi. Min () işlev metni

genel statik int Min (int a, int b, int c) {int min = a; eğer (dak> b) dak = b; eğer (min> c) min = c; min dönüş; }

genel statik int Min (int a, int b, int c) {int min = a;  eğer (dak> b) dak = b;  eğer (min> c) min = c;  min dönüş;  }

Şek. 2. MS Visual Studio 2010 penceresinin görünümü, “Program.cs” modülü

2.2. Program sınıfını herkese açık yap

Program sınıfının Min () işlevine erişebilmek için bu sınıfı herkese açık hale getirmeniz gerekir. Bunu yapmak için, bir sınıf ilan etmeden önce public anahtar sözcüğünü tanımlamanız gerekir.

... namespace MinApp {genel sınıf Programı {// sınıf yöntemleri // ...}} ...

Bundan sonra, test programı hazır.

3. Test edilen programın listelenmesi

Şu anda, test edilen programın listesi aşağıdaki gibidir:

Sistem kullanımı; System.Collections.Generic kullanarak; System.Linq kullanarak; System.Text kullanarak; namespace MinApp {genel sınıf Programı {genel statik int Min (int a, int b, int c) {int min = a; eğer (dak> b) dak = b; eğer (min> c) min = c; min dönüş; } static void Main (string [] args) {Console.WriteLine ("C # birim testinin gösterilmesi"); }}}

Bu program başka bir test modülünden test edileceğinden, Main () işlevinde başka bir şey girmenize gerek yoktur. Çünkü, sorunun durumuna göre, Min () fonksiyonunun çalışmasını test etmeniz gerekir. Ve bu test modülünden yapılacak. Şu anda programımız teste hazır.

4. Test oluşturma

Test, çözümdeki (Proje) ayrı bir proje (Proje) tarafından yaratılır. Test edilen program bunu bilmiyor. Test edilecek program (test programı) test edilen programın fonksiyonlarını arayacaktır. Bizim durumumuzda, test programı fonksiyonu arayacak

int Min (int, int, int);

4.1. Çözüme yeni bir proje ekleme

Bu çözüm için (Çözüm) bu komutu kullanarak yeni bir proje eklemeniz gerekir.

Dosya-> Ekle-> Yeni Proje ...

Yeni bir proje yaratma penceresi Şekil 3'te gösterilmektedir.

Şek. 3. Test Projesi tipi bir proje oluşturma penceresi

Pencereden bir grup Visual C # templates -> Test seçildi. Görüntülenen şablonlardan “Test Projesi” proje şablonu seçildi. "Ad" alanında programımızı test edecek projenin adı belirtilir. Örneğin TestMinApp ayarlamanız gerekir. Proje ayrı bir "E: \ Test \ MinApp" klasöründe bulunur.

Proje ayrı bir E: \ Test \ MinApp klasöründe bulunur

Şek. 4. UnitTest1.cs modülünün metni. TestMinApp ve MinApp projeleri görüntülenen Solution Explorer yardımcı programı penceresi

4.2. Çözüm yapısı

Şekil 4'ten görülebileceği gibi, Solution Explorer yardımcı programı iki proje içeren Solution Items yapısını görüntüler:

  • MinApp projesi. Bu, Protesto Uygulaması şablonu kullanılarak protesto etmek istediğiniz Min () işleviyle oluşturulan bir projedir;
  • TestMinApp projesi. Bu proje MinApp projesinin özelliklerini test etmek için tasarlanmıştır. Min () işlevini test eden program kodu, TestMinApp projesinin UnitTest1 proje dosyasına girilecektir.

Her iki proje de birbirinden bağımsız olarak gerçekleştirilebilir.

4.3. "UnitTest1.cs" dosyasının metni. [TestMethod] ve [TestClass] özellikleri

TestMinApp projesinde, UnitTest1.cs test dosyası birincil ilgi alanıdır. Bu dosya MinApp projesinin işlevlerini test edecek yöntemler içerir. TestMinApp projesi, testleri içeren herhangi bir sayıda dosyayı içerebilir (örneğin, UnitTest2.cs, UnitTest3.cs, vb.).

MS Visual Studio 2010 tarafından oluşturulan UnitTest1.cs dosyasının listesi aşağıdaki gibidir:

Sistem kullanımı; System.Text kullanarak; System.Collections.Generic kullanarak; System.Linq kullanarak; Microsoft.VisualStudio.TestTools.UnitTesting kullanarak; namespace TestMinApp {/// <summary> /// UnitTest1 için özet açıklama /// </ özet> [TestClass] genel sınıf UnitTest1 {public UnitTest1 () {// // TODO: Burada yapıcı mantığı ekleyin //} private TestContext testContextInstance; /// <summary> /// Test içeriğini alır veya ayarlar. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = değer; }} #region Ek test özellikleri // testlerinizi kullanabilirsiniz // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Bir sınıftaki tüm sınamaları çalıştırdıktan sonra kodu çalıştırmak için ClassCleanup kullanın // [ClassCleanup ()] // genel statik void MyClassCleanup () {} // // TestInitialize kullan Her testi çalıştırmadan önce kodu çalıştırmak için // [TestInitialize ()] // public void MyTestInitialize () {} // // TestCleanup Kullanın ) {} // #endregion [TestMethod] public void TestMethod1 () {// // TODO: Buraya test mantığı ekleyin //}}}

Yukarıdaki koddan da görüleceği gibi, dosya UnitTest1 adlı bir sınıf içerir. Sınıfın TestMethod1 () adında ortak bir yöntemi vardır. TestMethod1 () yöntemini uygulamadan önce, [TestMethod] niteliği yerleştirilir. Bu, MinApp projesinin işlevlerini yöntemin gövdesinde test edecek kodu girmeniz gerektiği anlamına gelir.

Sınıfta, farklı modüllerden farklı fonksiyonları test edecek herhangi bir sayıda yöntem girebilirsiniz. Önemli olan, bu yöntemlerin [TestMethod] özniteliği ile işaretlenmiş olmasıdır.

4.4. UnitTest1 modülünün metninde değişiklik yapılması. Test yönteminin adını değiştirme

Yöntem adlarını değiştirebilir ve UnitTest1.cs modülünde [TestMethod] özniteliği ile işaretlenmiş yeni yöntemler ekleyebilirsiniz. Bunu göz önüne alındığında, UnitTest1.cs modülünün metninde, TestMethod1 () yöntemini TestMin () olarak yeniden adlandırmanız gerekir.

Değişiklikler yapıldıktan sonra, UnitTest1.cs dosyasının modülünün kısaltılmış metni şöyle olacaktır:

Sistem kullanımı; System.Text kullanarak; System.Collections.Generic kullanarak; System.Linq kullanarak; Microsoft.VisualStudio.TestTools.UnitTesting kullanarak; ad alanı TestMinApp {/// <summary> /// UnitTest1 için özet açıklama /// </ özet> [TestClass] genel sınıf UnitTest1 {... [TestMethod] public void TestMin () {// // TODO: Test ekle Burada mantık //}}}

4.5. MinApp projesini TestMinApp projesine bağlama

TestMinApp projesinden Min () işlevine (MinApp projesi) erişebilmek için bu işlevin bulunduğu ad alanını bağlamanız gerekir.

Bunu yapmak için, öncelikle TestMinApp projesinin içerik menüsünü aramanız gerekir. Ardından içerik menüsünde “Add Reference ...” komutunu çağırmanız gerekir (Şekil 5).

” komutunu çağırmanız gerekir (Şekil 5)

Şek. 5. “Referans Ekle ...” Ekibi

Sonuç olarak, MinApp projesini seçmeniz gereken Referans Ekle penceresi açılacaktır.

Şek. 6. "Referans Ekle" penceresi. MinApp projesini bağlama

Tamamlanan işlemlerden sonra, MinApp proje fonksiyonları TestMinApp projesinde kullanılabilir.

Tamamlanan işlemlerden sonra, MinApp proje fonksiyonları TestMinApp projesinde kullanılabilir

Şek. 7. Bağlı MinApp projesi ile Referanslar sekmesi

4.6. UnitTest1.cs modülünün metninde değişiklik yapılması
4.6.1. MinApp ad alanını UnitTest1.cs modülüne ekleme

Bu adımda, UnitTest1.cs modülünde, kullanma direktifini kullanarak MinApp ad alanını eklemeniz gerekir:

Sistem kullanımı; System.Text kullanarak; System.Collections.Generic kullanarak; System.Linq kullanarak; Microsoft.VisualStudio.TestTools.UnitTesting kullanarak; MinApp kullanarak; ad alanı TestMinApp {...}

4.6.2. TestMin () yöntemi metni

TestMin () yönteminin metninde aşağıdaki kodu girin:

... [TestMethod] public void TestMin () {// // TODO: Buraya test mantığı ekleyin // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (2, dak); } ...

4.7. UnitTest1.cs modül metni

Tüm UnitTest1.cs modülünün metni aşağıdaki gibidir:

Sistem kullanımı; System.Text kullanarak; System.Collections.Generic kullanarak; System.Linq kullanarak; Microsoft.VisualStudio.TestTools.UnitTesting kullanarak; MinApp kullanarak; namespace TestMinApp {/// <summary> /// UnitTest1 için özet açıklama /// </ özet> [TestClass] genel sınıf UnitTest1 {public UnitTest1 () {// // TODO: Burada yapıcı mantığı ekleyin //} private TestContext testContextInstance; /// <summary> /// Test içeriğini alır veya ayarlar. /// </ summary> public TestContext TestContext {get {return testContextInstance; } set {testContextInstance = değer; }} #region Ek test özellikleri // testlerinizi kullanabilirsiniz // // Use ClassInitialize // [ClassInitialize ()] // public static void MyClassInitialize (TestContext testContext) {} // // Bir sınıftaki tüm sınamaları çalıştırdıktan sonra kodu çalıştırmak için ClassCleanup kullanın // [ClassCleanup ()] // genel statik void MyClassCleanup () {} // // TestInitialize kullan Her testi çalıştırmadan önce kodu çalıştırmak için // [TestInitialize ()] // public void MyTestInitialize () {} // // TestCleanup Kullanın ) {} // #endregion [TestMethod] public void TestMin () {// // TODO: Buraya test mantığı ekleyin // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (2, dak); }}}

5. Testi çalıştırın ve test sonucunu kontrol edin

Microsoft Visual Studio 2010'da, Unit testleriyle çalışmak için Test adı verilen özel bir komut menüsü uygulanır.

Bir yürütme testi çalıştırmak için komutlardan birini seçin.

Test -> Çalıştır -> Mevcut Bağlamdaki Testler

veya

Test -> Çalıştır -> Çözümdeki Tüm Testler

Şekil 8'de gösterildiği gibi.

Şek. 8. Teste başla komutunu çağırın ve sonucu görüntüleyin.

Testi yaptıktan sonra, sonuç Test Sonuçları penceresinin altında görüntülenebilir. Şekilden de görüleceği üzere test geçilmemiştir. Bu mantıklı, çünkü Assert.AreEqual () işlevinde farklı olan 2 ve 3 sayılarını karşılaştırıyoruz. Burada, 2 sayısı özel olarak 3 yerine verilir.

Eğer 2 sayısı yerine doğru cevap - 3'ü girerseniz (en az 3, 4, 5 arasında), o zaman test geçilecektir (Şekil 9). Bu durumda, TestMin () yönteminin metni aşağıdaki gibi olacaktır:

... [TestMethod] public void TestMin () {// // TODO: Buraya test mantığı ekleyin // int min; min = Program. Min (3, 4, 5); Assert .AreEqual (3, dak); } ...

Sonuç penceresi Şekil 9'da gösterilmektedir.

Şek. 9. Doğru cevabı girerseniz durum için test sonucu

Şimdi bu durum için Min () işlevinin doğru çalıştığını söyleyebiliriz.

6. sonuç. Projeler arası etkileşim

Bu yazıda, çözümde iki proje oluşturulmuştur. Bir MinApp projesi test etmek istediğiniz Min () işlevini içerir. İkinci proje olan TestMinApp, test yöntemlerini içerir.

Microsoft Visual Studio 2010'da, her proje farklı menü komutları kullanılarak başlatıldı. Bu yüzden, MinApp projesi standart olarak Çalıştır menüsünden başlatıldı. TestMinApp projesi de özel Test menüsünden başlatıldı.

İlgili Konular

Добро пожаловать , Гость !

Мы настоятельно рекомендуем Вам зарегистрироваться, если вы ещё этого не сделали. регистрация откроет Вам новые функции.

Войти или Зарегистрироваться

www.silvio-berluskoni.ru © Все права защищены © 2016.