2017-02-01 83 views
11

Ben, bu iki yöntemleri hakkında kafa karıştırıcı değilim.TestNG'de assertEquals() vs assertTrue() arasındaki gerçek fark nedir? hem benim kod pasajı altındaki gibi, aynı şeyi yapabilir, çünkü

assertEquals()

String a = "Hello"; 
String b = "Hello"; 

assertEquals(a, b); 

assertTrue()

assertTrue(a.equals(b)); 

kimse bana hem bu iki yöntem arasındaki gerçek farkları söyleyebilir Kullanma? Eğer gerçekten ilgilendiren neler ilgili birim test çerçevesi daha fazla bilgi verir, çünkü

cevap

27

assertEquals daha iyidir. Bu sınama başarısız olduğunda daha iyi hata bilgileri sağlamanıza olanak tanır. Eğer değerler muhtemelen olacağını dikkate alarak, size daha fazla bilgi verir sizce olanların

// From assertEquals(a, b) 
Error: Expected "Hi"; was "Hello" 

// From assertTrue: 
Error: Expected true; was false 

:

Eğer Sonra deney hataları benzeyebilecek

String a = "Hello"; 
String b = "Hi"; 

vardı varsayalım makul karmaşık hesaplamalar sonucu?

(Bunlar TestNG yüklü olmayan gibi hata iletileri oluşur, fakat vermek onlar şey birim test çerçeveler tür konum.)

+9

Ayrıca 'assertEquals (a, b)' dır null-safe, 'assertTrue (a.equals (b))' değil. – Andreas

+0

Teşekkürler, @Jon daha iyi bir açıklama ve bu iki yöntemle ilgili kavramımı temizliyorum. :-) –