gpt4 book ai didi

java - 如何断言断言 A 或断言 B 通过 Junit 4?

转载 作者:行者123 更新时间:2023-12-01 12:25:34 25 4
gpt4 key购买 nike

我正在使用 Junit 4 和 Selenium WebDriver 进行一些自动化测试。我有一个测试,在页面上记录一些值,单击页面上的按钮加载下一页,然后比较记录的值以确保它们发生更改。

问题是它是一对,并且只有其中一个必须更改,而不是两者都更改。

为了测试它,我目前实现了以下代码:

boolean orderNumberChanged = true;
try
{
assertThat(orderNumber,
is(not(getValueForElement(By.name("updateForm:j_id35")))));

}
catch (AssertionError ae) { orderNumberChanged = false; }
try
{
assertThat(orderDate,
is(not(getValueForElement(By.name("updateForm:j_id37")))));

}
catch (AssertionError ae)
{
if ( !orderNumberChanged )
{ fail("OrderNumber and OrderDate didn't change."); }
}

虽然它应该工作得很好,但对我来说看起来很丑,而且似乎应该有某种方法来断言这样的事情。

郑重声明getValueForElement()是我编写的包装方法
driver.findElement(locator).getAttribute("value");

最佳答案

如果没有严重的扭曲,你就无法以 hamcrest 风格执行此操作,这会使其可读性比回退到 assertTrue 低得多。

就这么做

assertTrue(orderNumber.equals(...) || orderDate.equals(...));

新的 assertThat 需要匹配单个对象,因此您必须将它们放入数组或其他内容中才能通过。

关于java - 如何断言断言 A 或断言 B 通过 Junit 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26371032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com