在Maven Surefire插件

时间:2018-05-15 20:46:15

标签: java maven unit-testing maven-surefire-plugin

我习惯使用boost测试,当测试失败时,它会显示两个值,例如:

test": check 0.99999608 == discountFactor1.getDiscountFactor() has failed [0.99999607999999995 != 0.99999608334867351].

现在在Java中,我正在使用Maven Surefire,当测试失败时,它告诉代码的位置在哪里调用测试,例如:

java.lang.AssertionError
...
testSendRequest(sendRequestTest.java:295)

在这个位置,我有一个测试的调用:

295 Assert.assertTrue(HHH.getSequenceNumber() == sequenceNumber);

如果测试失败,有没有办法知道HHH.getSequenceNumber()和sequenceNumber的值?

1 个答案:

答案 0 :(得分:1)

实际的消息可能是由IDE提供的,超出了单元测试框架的功能:

  

测试":检查0.99999608 == discountFactor1.getDiscountFactor()有   失败[0.99999607999999995!= 0.99999608334867351]。

要使用Maven实现类似的功能,您可以使用重载的assertTrue()方法在输出中添加与失败相关的文本消息:

Assert.assertTrue(String msg, boolean condition)

你可以写下:

Assert.assertTrue(HHH.getSequenceNumber() + " is not equals to " + 
                 sequenceNumber, 
                 HHH.getSequenceNumber() == sequenceNumber);

但实际上我认为你应该使用Assert.assertEquals(),如果测试失败,会提供一个比较两个对象的消息。
你可以写:

Assert.assertEquals(HHH.getSequenceNumber(), sequenceNumber);