2013-07-18 72 views
0

。然而,具有在比所述测试方法的另一种方法断言时,它显示一个奇怪的消息:TestNG中忽略方法断言消息

MyTestFixture:49->TestHelper.verifyXYZwasDisplayed:49 expected:<Foo...> but was:<Bar...> 

这里verifyXYZwasDisplayedTestHelper类被显示在消息中。如果消息包含测试方法名称,则会更有帮助。当TestNG创建断言消息时,我可以以某种方式注释该方法吗?

回答

1

我想你的TestHelper.verifyXYZwasDisplayed()方法有一个assert*()在里面。这意味着抛出的AssertionError将指向使用此断言的行。

相反,让它返回一个布尔值是true,如果条件满足,那么使用:

assertTrue(TestHelper.verifyXYZwasDisplayed(blah)); 
+0

所以没有办法做到这一点?如果我这样做,那么信息就会变得更糟:“预期是真的,但是是假的”。那不是那么有用... – vidstige

+0

您可以自定义错误消息(第二个参数)。另一种解决方案是自定义断言,但即使如此,错误也会与自定义断言中的行相关联,而不是方法本身 – fge

+0

不,在常规断言中,您不必指定消息以获得好的结果“期望x,但得到y”的消息。 – vidstige