自定義測試規則
兩者都有好處。擴充套件 ExternalResource
很方便,特別是如果我們只需要一個 before()
來設定一些東西。
但是,我們應該知道,因為 before()
方法是在 try...finally
之外執行的,所以如果在執行 before()
期間出現錯誤,則在 after()
中執行清理所需的任何程式碼都不會被執行。
這就是它在 ExternalResource
中的樣子:
before();
try {
base.evaluate();
} finally {
after();
}
顯然,如果在測試本身或其他巢狀規則中丟擲任何異常,則仍將執行 after。