- İçerik
- icra
- 2. Program.cs modül metninin hazırlanması
- 2.2. Program sınıfını herkese açık yap
- 3. Test edilen programın listelenmesi
- 4. Test oluşturma
- 4.1. Çözüme yeni bir proje ekleme
- 4.2. Çözüm yapısı
- 4.3. "UnitTest1.cs" dosyasının metni. [TestMethod] ve [TestClass] özellikleri
- 4.4. UnitTest1 modülünün metninde değişiklik yapılması. Test yönteminin adını değiştirme
- 4.5. MinApp projesini TestMinApp projesine bağlama
- 4.6. UnitTest1.cs modülünün metninde değişiklik yapılması
- 4.6.2. TestMin () yöntemi metni
- 4.7. UnitTest1.cs modül metni
- 5. Testi çalıştırın ve test sonucunu kontrol edin
- 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ı
Ş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üş; }
Ş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.
Ş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).
Ş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.
Ş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 Testlerveya
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ı.