Void yöntemleri birim test?
Birim için en iyi yolu hiçbir şey döndürmez bir yöntem testi nedir? Özellikle c#.
Gerçekten test etmek için çalışıyorum ne bir günlük dosyası alır ve belirli dizeleri için kullandığı bir yöntemdir. Dizeleri, daha sonra bir veritabanına eklenir. Daha önce yapılmamış ama eğer bu test etmek mümkün olup olmadığını merak ediyorum TDD için ÇOK yeni bir varlık ya da hiçbir şey gerçekten test almaz bir şey.
CEVAP
Eğer bir yöntem, bir şey iade etmez ise, aşağıdakilerden biri
- şart- Ya da nesnenin kendisi için bir şey yapmak.. e soruyorsun.g devlet (bitmiş olacağı varsayılır.. herhangi bir onay beklemeden) değiştirin
- bilgilendirme- sadece bir şey (bekliyor eylem veya tepki vermeden) başına gelen birileri bildiren sırasıyla.
Zorunlu işlem yöntemleri - eğer bu görev aslında gerçekleştirildi emin olabilirsiniz. Eğer devlet değişim aslında gerçekleşti doğrulayın. örneğin
void DeductFromBalance( dAmount )
bilanço sonrası eğer doğrulayarak test edilebilir bu mesajı dAmount tarafından ilk değerinden daha doğrusu daha az
Bilgilendirme yöntemleri - nesnenin ortak arabirim üyesi... dolayısıyla birim test değil normal olarak nadirdir. Ancak, eğer gerekiyorsa, Eğer bir bildirim üzerine yapılacak işleme gerçekleştikten emin olabilirsiniz. örneğin
void OnAccountDebit( dAmount ) // emails account holder with info
eğer e-posta gönderiliyor eğer doğrulayarak test edilebilir
Gerçek yöntemi hakkında daha fazla bilgi yazı ve insanlar daha iyi cevap vermek mümkün olacak.< / ^ br . Güncelleme: Yöntem 2 şeyler yapıyor. Aslında şimdi bağımsız olarak test edilebilir bu iki yöntem bölmek istiyorum.
string[] ExamineLogFileForX( string sFileName );
void InsertStringsIntoDatabase( string[] );
String[] kolayca bir kukla dosya ve beklenen dizeler. ilk yöntem sunarak doğrulanabilir İkincisi biraz zor.. ya da bir Alay (google veya arama stackoverflow üzerinde alay çerçeveler) taklit DB veya hit gerçek DB ve doğrulamak eğer dizeleri vardı takılı olarak doğru yeri. İyi kitaplar için this thread kontrol edin... eğer bir sorununuz varsa Pragmatik Birim Test recomment istiyorum.< / ^ br . Kod gibi kullanılır
InsertStringsIntoDatabase( ExamineLogFileForX( "c:\OMG.log" ) );
JUnit: önlemek için nasıl "çalışt...
Nasıl birim dişli kod test yapmalıyım?...
Nasıl birim bir Windows Hizmeti test e...
Birim test etmenin en iyi yolu Objecti...
Nasıl test zaman uyumsuz API birim içi...