最佳實踐:單元測試代碼和被測試代碼使用一樣的包,不同的目錄。
測試你的equals方法
assertEquals()
framework將基本類型當作數值來比較(而不是對象)。
方法的返回值是對象:
1)取回返回值所有可讀的屬性值。
2)創建一個代表期望值的對象。
如果你的對象不是數值對象,那么就無須去測試它們的相等性。
Mike Bowler
GSBase(http://gsbase.sourceforge.net)
EqualsTester
“RST”原則(反身性、對稱性、傳遞性)
assertFalse()
JUnit-addons(http://junit-addons.sourceforge.net)
EqualsHashCodeTestCase
assertNotEquals()
測試一個沒有返回值的方法
1. 創建一個空容器
2. 查詢該容器應該得不到任何項
3. 將對象添加到容器中,并查詢容器
4. 現在容器包含了剛才添加的項
測試構造函數
測試獲取器
測試設置器
------------------------------------------------------------------------------------
最佳實踐:測試任何可能的錯誤。單元測試不是用來證明您是對的,而是為了證明您沒有錯。
fixture:在執行一個或者多個測試方法時需要一系列公共資源或者數據,例如測試環境、測試數據等等。
方法級別
1. @Before
2. @After
3. public void
類級別
1. @BeforeClass
2. @AfterClass
3. public static void
異常和時間測試
expected、timeout
忽略測試方法
@Ignore
測試運行器
@RunWith(CustomTestRunner.class)
測試套件:批量運行測試類
1. 創建一個空類(入口)
2. @RunWith、@Suite.SuiteClasses
3. @RunWith(Suite.class)
4. @Suite.SuiteClasses(TestXX.class)
5. public
參數化測試
1. @RunWith(Parameterized.class)
2. 聲明變量,用于存放期望值和測試所用數據
3. @Parameters、public static Collection
4. 聲明一個帶有參數的公共構造函數,為2中聲明的變量賦值
5. 測試
JUnit和Ant
------------------------------------------------------------------------------------
測試接口(?)
測試JavaBean
參考資料:
1. 《JUnit Recipes中文版》
2. 單元測試利器 JUnit 4(http://www.ibm.com/developerworks/cn/java/j-lo-junit4/)