定制jUnit AssertFailure错误消息——结合slf4j日志



我是jUnit和Selenium的新手。目前,我们正在项目中进行POC,以评估工具的适用性。

我们的关键需求之一是在断言失败和验证失败时使用友好的消息。目标是通过保持用户的直觉,让手工测试人员分析这些内容。

我正在尝试使用SLF4J来记录INFO消息,以获得用户友好的消息。

我面临的挑战是-当断言失败时,如何传递自定义消息而不是jUnit默认消息?

例如,我想去掉以下默认断言失败消息

期望"Health A-Z"匹配全局"Health A-ZZ"(已将全局转换为正则表达式"Health A-ZZ"

并将其框架为

菜单项的标题与期望值"运行状况A-ZZ"不匹配。看到的实际值为"运行状况A-Z"

Question1 -我有办法用我想要的内容覆盖默认消息吗?问题2 -我可以向消息传递可变参数并使其成为动态消息吗?

示例代码:

try {
    assertEquals("Health A-ZZ", selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
    logger.info("SUCCESS: Menu Item {} title verification Passed. EXPECTED : A-Z and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
}
catch (AssertionError e) {
    logger.error("FAILURE: Menu Item {} title verification Failed. EXPECTED : A-ZZ and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
}

我得到assertFailure消息打印两次…一个在上面的catch块中有错误消息,另一个是默认的junit assertfailure消息,就像我上面提到的那样,我想去掉。

Thanks in Advance.

问候,普拉卡什

您可以使用Junit断言函数。asserequals (message, expected, actual)

这将在失败的情况下打印消息字符串中给出的消息。

相关内容

  • 没有找到相关文章