Selenium webdriver 为什么我的';AssertEquals()';方法失败?

Selenium webdriver 为什么我的';AssertEquals()';方法失败?,selenium-webdriver,webdriver,testng,Selenium Webdriver,Webdriver,Testng,当两个字符串明显不匹配时,为什么我的assert方法没有失败 public void checkHomepageURL_Test1() throws Exception { basePage.loadHomePage(); try { System.out.println("inside try block"); Assert.assertEquals("Actual String Expected", "Im Wrong!"); System.out.println("

当两个字符串明显不匹配时,为什么我的assert方法没有失败

public void checkHomepageURL_Test1() throws Exception {
basePage.loadHomePage();
try {
    System.out.println("inside try block");
    Assert.assertEquals("Actual String Expected", "Im Wrong!");
    System.out.println("inside try block SECOND!!");




} catch (Throwable e) {
    System.out.println("BETA!!!!!!" + e.getMessage());
} finally {
    System.out.println("All over now!");
}
}

新Examaple

当断言失败时,它抛出一个可丢弃的。由于您的断言位于try-catch块中,因此当抛出该Throwable时,它将被catch块捕获,您的程序将记录为“BETA”!!!!!!“+e.getMessage()”然后它将正确完成

你应该:

  • 移除您的try-catch块
  • 捕获异常而不是丢弃
(第一个选项适用于测试AFAIK)

如果删除捕获,您的错误将在控制台中按如下方式打印

org.junit.ComparisonFailure: 
Expected :Actual String Expected
Actual   :Im Wrong!
 <Click to see difference>


at org.junit.Assert.assertEquals(Assert.java:115)
at org.junit.Assert.assertEquals(Assert.java:144)
at com.scouto.test.checkHomepageURL_Test1(test.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
org.junit.ComparisonFailure:
应为:应为实际字符串
我错了!
位于org.junit.Assert.assertEquals(Assert.java:115)
位于org.junit.Assert.assertEquals(Assert.java:144)
在com.scouto.test.checkHomepageURL_Test1(test.java:15)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中

如果删除try-catch块,如果断言错误,我将如何将其输出到控制台窗口?这应该足以检查失败的原因并修复它。否则你可以用投掷(e)来收回它;但我认为这是一个巨大的代码,当我使用TestNG Assert时,我似乎得到了上面图片中列出的以下内容,我从未见过该库。我一直使用org.junit.Assert和org.junit.Test.ok@SCouto如果我使用throwable,它会将错误输出到控制台,异常会使测试失败,但不会输出任何东西。您可以检查命名的QMetry自动化框架,该框架提供了详细结果的方法。