SORU
29 EKİM 2008, ÇARŞAMBA


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
29 EKİM 2008, ÇARŞAMBA


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" ) );

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • TVNorge

    TVNorge

    5 EKİM 2006