自定義測試規則

兩者都有好處。擴充套件 ExternalResource 很方便,特別是如果我們只需要一個 before() 來設定一些東西。

但是,我們應該知道,因為 before() 方法是在 try...finally 之外執行的,所以如果在執行 before() 期間出現錯誤,則在 after() 中執行清理所需的任何程式碼都不會被執行。

這就是它在 ExternalResource 中的樣子:

before();
try {
    base.evaluate();
} finally {
    after();
}

顯然,如果在測試本身或其他巢狀規則中丟擲任何異常,則仍將執行 after。