Unit test:
Unit test yöntemi ile tasarım yapmak çok önemli çünkü akla gelebilecek ya da gelmeyecek birçok hatayı henüz büyük bir sistemi tasarlamadan tespit edebiliriz. NUnit aracının 2.4.X sürümünü kullanıyorum. NUnit, DUnit (Delphi Unit) sisteminden biraz daha farklı geliştirilmiş. Delphi test işlemlerini yapmak için birçok sınıf tasarlanmış ancak NUnit ortamında ise istenilen sınıf veya yöntem isimleri, test işlemleri için kullanılabilir. Test işleminin başarılı şekilde yapılabilmesi için önemli olan konu NUNit framework içinde yer alan attribute değerlerinin düzgün yerde kullanılmasıdır.
[TestFixture]
Test yapılacak sınıfın üzerinde tanımlanması gerekiyor. Bu tanımlama .Net assembly içindeki bu sınıf NUnit aracı tarafından tespit edilecek ve [Test] attribute değeri olan yöntemleri çalıştıracaktır.
[Test]
Delphi'de olduğu gibi yöntem isimlerini "Test" ile başlatmak gerekmiyor. NUnit aracı, ilgili sınıftaki tüm yöntemleri gezerken yöntemin public ve [Test] ile tanımlanmış olmasını kontrol etmektedir. Kontrolden geçen tüm yöntemler sırasıyla çalıştırılacaktır ve içindeki assert sınıfına ait yöntemleri tetikleyecektir.
[SetUp]
Test sınıf kodunun içinde her bir test yöntemi öncesinde yapılması gereken SetUp işlemi varsa bu attribute değeri tanımlanmalıdır.
(Setup değeri her bir test yönteminin öncesinde çalıştırılır.)
[TearDown]
Test sınıf kodunun içinde her bir test yöntemi sonrasında yapılması gereken kapanış işlemi varsa bu attribute değeri tanımlanmalıdır.
(TearDown değeri her bir test yönteminin sonrasında çalıştırılır.)
Örnek (Setup ve TearDown)
SetUp ve TearDown değerleri test işleminde unmanaged kodlarının olması durumunda kullanılabilir. Bir dosyadan satır, karakter, blok byte değerleri okunacaksa ve her bir özellik ayrı test yöntemleri içinde test edilecekse, SetUp yönteminde çalışacak dosya açılır, TearDown yönteminde ise kapatılır. Bu şekilde her üç test yöntemi içinde dosyanın açılıp/kapatılmasına ait kod tekrarının önüne geçilmiş olacaktır.
Unit test yöntemi ile tasarım yapmak çok önemli çünkü akla gelebilecek ya da gelmeyecek birçok hatayı henüz büyük bir sistemi tasarlamadan tespit edebiliriz. NUnit aracının 2.4.X sürümünü kullanıyorum. NUnit, DUnit (Delphi Unit) sisteminden biraz daha farklı geliştirilmiş. Delphi test işlemlerini yapmak için birçok sınıf tasarlanmış ancak NUnit ortamında ise istenilen sınıf veya yöntem isimleri, test işlemleri için kullanılabilir. Test işleminin başarılı şekilde yapılabilmesi için önemli olan konu NUNit framework içinde yer alan attribute değerlerinin düzgün yerde kullanılmasıdır.
[TestFixture]
Test yapılacak sınıfın üzerinde tanımlanması gerekiyor. Bu tanımlama .Net assembly içindeki bu sınıf NUnit aracı tarafından tespit edilecek ve [Test] attribute değeri olan yöntemleri çalıştıracaktır.
[Test]
Delphi'de olduğu gibi yöntem isimlerini "Test" ile başlatmak gerekmiyor. NUnit aracı, ilgili sınıftaki tüm yöntemleri gezerken yöntemin public ve [Test] ile tanımlanmış olmasını kontrol etmektedir. Kontrolden geçen tüm yöntemler sırasıyla çalıştırılacaktır ve içindeki assert sınıfına ait yöntemleri tetikleyecektir.
[SetUp]
Test sınıf kodunun içinde her bir test yöntemi öncesinde yapılması gereken SetUp işlemi varsa bu attribute değeri tanımlanmalıdır.
(Setup değeri her bir test yönteminin öncesinde çalıştırılır.)
[TearDown]
Test sınıf kodunun içinde her bir test yöntemi sonrasında yapılması gereken kapanış işlemi varsa bu attribute değeri tanımlanmalıdır.
(TearDown değeri her bir test yönteminin sonrasında çalıştırılır.)
Örnek (Setup ve TearDown)
SetUp ve TearDown değerleri test işleminde unmanaged kodlarının olması durumunda kullanılabilir. Bir dosyadan satır, karakter, blok byte değerleri okunacaksa ve her bir özellik ayrı test yöntemleri içinde test edilecekse, SetUp yönteminde çalışacak dosya açılır, TearDown yönteminde ise kapatılır. Bu şekilde her üç test yöntemi içinde dosyanın açılıp/kapatılmasına ait kod tekrarının önüne geçilmiş olacaktır.