1

有人可以向我展示一个完整的最终失败行为的最小示例吗?

我找到的文档只是说:

expect.that(actual).isEqualTo(expected); // supplied by @Rule

用例:我想要一个测试,多个断言(对同一个对象的断言,但我希望看到所有断言失败,因为测试本身是一个长时间运行的过程)。

4

1 回答 1

1

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不会导致测试快速失败,而是在测试完成后失败。

于 2017-06-06T08:16:29.573 回答