您能否使 assertTrue 错误消息更具体?

Can you make assertTrue error messages more specific?

我经常使用 testNG 的 assertTrue 来验证交易是否正确

public void verifyAmount(WebElement element, String someText){
assertTrue(element.getText().contains(someText));
}

失败时显示

java.lang.AssertionError: did not expect to find [true] but found[false]

是否可以将断言错误更改为说明到底出了什么问题,而不仅仅是 true/false 语句?是否可以使该消息更具体? 有没有办法让断言错误说:

java.lang.AssertionError: did not expect to find [10.000 $] but found[3000 $]

你可以转这个:

public void verifyAmount(WebElement element, String someText){
assertTrue(element.getText().contains(someText));
}

进入:

public void verifyAmount(WebElement element, String someText, String message){
assertTrue(element.getText().contains(someText), message);
}

并传递您认为应该给出的错误消息。

编辑:我习惯使用其他断言方法,将消息作为第一个参数,但 Long Nguyen 的回答是正确的:TestNG 接受消息作为 assertTrue 的最后一个参数。

https://www.javadoc.io/doc/org.testng/testng/6.8.17/org/testng/Assert.html#assertTrue(boolean)

看一下文档,可以看到条件后面可以加一条消息。

public static void assertTrue(boolean condition, String message)

谢谢大家的回答,

 assertTrue(string.contains(property), errorMessage);

完成任务