【问题标题】:Can you make assertTrue error messages more specific?你能让 assertTrue 错误信息更具体吗?
【发布时间】:2020-05-16 22:13:58
【问题描述】:

我经常使用 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]

是否可以更改断言错误以说明究竟出了什么问题,而不仅仅是真/假陈述?是否可以使该消息更具体? 有没有办法让断言错误说:

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

【问题讨论】:

  • 因为它并不总是真正相等的,该元素对原始字符串有添加,所以我必须使用“包含”

标签: java testng appium assert assertion


【解决方案1】:

谢谢大家的回答

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

完成任务

【讨论】:

  • 改为接受 Stultuske 的回答。很高兴看到单元测试
【解决方案2】:

你可以转这个:

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 的最后一个参数。

【讨论】:

    【解决方案3】:

    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)

    【讨论】:

      猜你喜欢
      • 2011-11-21
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多