Soru özellikle "beyaz kutu testi" ne atıfta bulunuyor. Bu, testlerinizin kodun iç yapısı hakkında derinlemesine bilgi sahibi olduğu ve sadece giriş / çıkış / yan etki (kara kutu testi) yerine her adımda iddia iddialarıdır. JUnit her ikisini de yapmak için mükemmel olsa da, bunu bir birim test bağlamında yapmak için daha fazla ek çerçeveye ihtiyacınız vardır.
EasyMock ve JMock bunu yapmak için iyi çerçevelerdir. JMock'u tercih etme eğilimindeyim.
Bir OT tartışması başlatma riski altında, beyaz kutu testinin sonuçları hakkında dikkatlice düşünmelisiniz. Beyaz kutu testleri kodunuza sıkı sıkıya bağlıdır (açık bir şekilde) ve dikkatle kullanılmazsa, alaycı çerçeveler testlerinizin oldukça karmaşık olmasına, okunması zor olmasına ve yeniden düzenleme yaparken daha kırılgan olma eğilimine neden olabilir.
Her ikisinin bir karışımına bağlı kalıyorum. Kara kutu testleri mümkün olan her yerde, beyaz kutu testleri ise daha riskli / daha karmaşık koda uygulanmaktadır.
Tabii ki yukarıda listelenen çerçeveler, katkıda bulunan (enjekte edilen) sınıfların sayısının fazla olduğu ve basit stubbing'in avantajsız hale geldiği kara kutu testlerinde de kullanılabilir.
TDD ile ilgili olarak - bu, sadece bir test yazma yöntemi yerine, kod yazma konusunda tasarım geliştiren bir yaklaşımdır. Sonunda yaptığınız testler önemli bir çıktıdır, ancak dahası yaklaşım, uygulamanızın tasarımını ve yapısını geliştirmeyi amaçlamaktadır.