有人可以向我展示一个完整的最终失败行为的最小示例吗?
我找到的文档只是说:
expect.that(actual).isEqualTo(expected); // supplied by @Rule
用例:我想要一个测试,多个断言(对同一个对象的断言,但我希望看到所有断言失败,因为测试本身是一个长时间运行的过程)。
有人可以向我展示一个完整的最终失败行为的最小示例吗?
我找到的文档只是说:
expect.that(actual).isEqualTo(expected); // supplied by @Rule
用例:我想要一个测试,多个断言(对同一个对象的断言,但我希望看到所有断言失败,因为测试本身是一个长时间运行的过程)。
Expect
旨在用作JUnit@Rule
。您将在源代码中看到AssertionError
测试完成后在规则的apply()
方法中抛出。这是它的简化版本:
public void evaluate() throws Throwable {
// this invokes the test, collecting failures in gatherer
base.evaluate();
// after the test finishes the failures are collected and thrown
if (!gatherer.getMessages().isEmpty()) {
throw new AssertionError(gatherer.toString());
}
}
在单元测试中有一个示例用法Expect
(这并不是说它不应该在其他地方得到更好的记录)。本质上,只需添加如下一行:
@Rule public final Expect expect = Expect.create();
然后用于expect.that(foo)....
断言foo
不会导致测试快速失败,而是在测试完成后失败。