如何测试一个以上的断言尽可能兼容?

时间:2018-06-26 13:10:11

标签: java unit-testing junit5

有时候在一个单元测试方法中有多个断言是很有意义的,例如

@Test
public void testMapReduceProcessing() {
    Tuple tuple = new MetadataTuple();
    Processor instance = new Processor();
    instance.process(tuple);
    assertEquals(State.PROCESSED, tuple.getState());
    assertEquals(1, tuple.getProcessCount());
}
我将来可能会介绍的

PMD和可能还有其他静态分析工具,现在要在编程时考虑使用,它们会发出JUnitTestContainsTooManyAsserts警告,因为存在多个assert[...]。我可以:

  • 拆分方法,但这似乎有点过头了,建议不要在每个单元测试方法中使用一个断言,因为此处拆分没有优势。
  • assertTrue(a.equals(b) && c.equals(d))将使断言失败消息复杂化,并且由于equals应该使用assertEquals而导致样式错误。
  • 接受没有其他解决方案,并禁止PMD检查。

我对所有人都不满意。有什么优雅的方法吗?我正在寻找JUnit 5方法,并且不介意额外的依赖关系。

0 个答案:

没有答案