我引用本帖來自exubero's的條目。我認爲這個入門將有利於所有正在進行單元測試的人:JUnit - 使用錯誤Assert
在Junit的Assert類中定義了大量以assert開頭的不同方法。這些方法中的每一個都有關於他們聲明的參數和語義略有不同。
下面顯示了assertTrue一些不規則的用途:
assertTrue("Objects must be the same", expected == actual);
assertTrue("Objects must be equal", expected.equals(actual));
assertTrue("Object must be null", actual == null);
assertTrue("Object must not be null", actual != null);
一些單元測試的專家指出,上面的代碼可以更好地寫爲:
assertSame("Objects must be the same", expected, actual);
assertEquals("Objects must be equal", expected, actual);
assertNull("Object must be null", actual);
assertNotNull("Object must not be null", actual);
一個使用的優點適當'assertXXX()'將增加單元測試的可讀性。任何人都可以指出使用適當的'assertXXX()'有什麼其他好處嗎?
這不是博客。請不要在這裏發表咆哮,然後在最後提出一個小問題。 – JoshJordan 2009-09-10 01:40:39
注意到這一點。很公平。我在帖子中編輯了字詞。我從來沒有把這個問題稱爲「咆哮」。我的觀察提出了一個有趣的辯論,可以幫助每個人更好地編寫單元測試。所以我只想看看其他人在想什麼。 – zfranciscus 2009-09-10 01:51:09
這不是一場真正的辯論,是嗎?對於測試布爾方法的特定情況,您應該只使用'assertTrue'。有什麼問題?你遇到了一個被assertTrue困惑的人嗎? – 2009-09-10 02:27:33