自定义测试规则
两者都有好处。扩展 ExternalResource 很方便,特别是如果我们只需要一个 before() 来设置一些东西。
但是,我们应该知道,因为 before() 方法是在 try...finally 之外执行的,所以如果在执行 before() 期间出现错误,则在 after() 中执行清理所需的任何代码都不会被执行。
这就是它在 ExternalResource 中的样子:
before();
try {
base.evaluate();
} finally {
after();
}
显然,如果在测试本身或其他嵌套规则中抛出任何异常,则仍将执行 after。