gpt4 book ai didi

java - 为什么我的断言失败 - 预期为 'x' 但发现为 'x' ?

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

为什么我的断言失败 - 预期为“x”,但发现为“x”?

我的数据表:

Examples: 
| url | username | password |message|
| http://www.example.com | user1 | pass1 |validation failed|
| http://www.example.com | webdriver | webdriver123 |validation succeeded|

我的代码使用断言:

@Then("^the user should be presented with the following prompt alert \"([^\"]*)\"$")
public void the_user_should_be_presented_with_the_following_prompt_alert(String message) throws Throwable {
Alert alert = driver.switchTo().alert();
System.out.println("DEVIL:" + alert.getText());
Assert.assertSame(message.toLowerCase().replaceAll("\\s",""), alert.getText().toString().toLowerCase().replaceAll("\\s",""));
driver.switchTo().alert().accept();
}

失败:

 java.lang.AssertionError: expected same:<validationsucceeded> was not:<validationsucceeded>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotSame(Assert.java:828)
at org.junit.Assert.assertSame(Assert.java:771)
at org.junit.Assert.assertSame(Assert.java:782)

enter image description here

最佳答案

请使用org.junit.Assert.assertEquals()

您使用了org.junit.Assert.assertSame()它比较一个对象是否引用同一个对象。在你的情况下,你使用 toLowerCase()方法,结果为 new String 。因此,您比较两个不同的对象。当测试失败时,它输出到控制台 toString()对象的值,这就是为什么你得到的预期与实际相同。

下面的示例重现了您的情况,但失败并出现错误:expected same:<text> was not:<text>

String obj = "TEXT";
String obj2 = "text";
Assert.assertSame(obj.toLowerCase(), obj2.toLowerCase());

下面就是你要找的,会成功通过的

String obj = "TEXT";
String obj2 = "text";
Assert.assertEquals(obj.toLowerCase(), obj2.toLowerCase());

关于java - 为什么我的断言失败 - 预期为 'x' 但发现为 'x' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44457346/

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