2017-02-09 7 views
1
  1. Почему мой метод assert не работает, когда две строки явно не совпадают?Почему мой метод AssertEquals() не работает?

    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!"); 
    } 
    

    }

enter image description here

Новый Examaple enter image description here

+0

Вы можете проверить [расширение TestNG] (https://github.com/cbeust/testng/wiki/3rd-party-extensions#frameworks) под названием Framework QMetry автоматизации, обеспечивающая [утверждать и проверки] (HTTPS: //qmetry.github.io/qaf/latest/assertion_verification.html) с подробным результатом в [report] (https://qmetry.github.io/qaf/latest/qaf_reporting.html). – user861594

ответ

1

Когда утверждают, терпит неудачу он бросает Throwable. Поскольку у вас есть ваш assert внутри блока try-catch, когда этот Throwable будет поднят, он будет захвачен блоком catch, ваша программа будет записывать «BETA !!!!!!» + e.getMessage() », а затем он будет закончен правильно.

Вы должны либо:

  • удалить ваши попытки поймать блок
  • поймать Exception вместо Throwable

(первый вариант правильный один для испытания AFAIK)

Если вы удалите Catch, ваша ошибка будет напечатана следующим образом в консоли.

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) 
+0

если я удалю блок catch try, как бы я вывел утверждение в окно консоли, если это неправильно? – Gbru

+0

Я отредактирую свой ответ, чтобы показать, как он напечатан – SCouto

+0

ok @SCouto thanks – Gbru

Смежные вопросы