JUnit
Last updated
Was this helpful?
Last updated
Was this helpful?
參考資料:()
下載套件:
junit.jar & hamcrest-core.jar()
參考資料:()
參考資料:()
name
static
說明
BeforeClass
O
整個開始前執行一次
每個case前都會執行一次
After
X
每個case後都會執行一次
AfterClass
O
整個測試案例跑完會執行一次
在使用@Test註解的方法,即測試案例內編寫:
Arrange:初始化目標物件(待測類別)、初始化相依物件、方法參數、預期結果(excepted)
Act:調用目標物件及欲測試的方法
Assert:驗證實際結果(actual)是否符合預期結果
(3A的另外一種描述方式 建造-操作-檢查 BUILD-OPERATE-CHECK)
ERROR Code:
經查詢 Predicate 是JDK8新增的項目,根據GitHub內所言
雖然教學文章內是使用 Assertj 3.8.0 ,但我目前只能嘗試JDK7,故接下來皆是改用 2.9.1 的版本。
軟斷言範例:
要記得執行最後一行 .assertAll()
才會執行斷言。
當我們寫測試的時候,我們必須遵守這樣的原則:
不應在測試方法中加入業務邏輯,不要造成維護上的困難 確保我們的測試易於讀寫
但使用軟斷言: 可能把業務邏輯加入到測試案例中,這會使得讀者的注意力會從測試本質,轉移到實現細節上,也就是說變得難以閱讀。 並且因為業務邏輯加入,當單一狀態的改變時,造成相關的測試也都需要進行變更,這造成維護上的困難。
所以一般情況下是不使用的好...
使用 JUnit 去捕捉,就類似用一個大的 try .. catch 包住這整個Test
但是上述這個寫法的缺點,在於有可能並不是我們期望的那一行所噴的錯,有可能是其他行噴的,但我們無法察覺。
使用 AssertJ 編寫斷言
前置條件:此系統必須是 Java 8
AssertJ提供了org.assertj.core.api.Assertions.catchThrowable()方法來捕捉異常
參考資料:()
Github:()
3.8.0 jar下載點:
2.9.1 jar下載點:
參考文章:()
參考資料:()
參考資料:()