Как зафиксировать ошибку подтверждения, отображаемую в консоли - PullRequest
0 голосов
/ 25 января 2020

Я использую assert для проверки двух значений, поэтому, если мой тестовый случай не пройден и в консоли он показывает причину неудачи (ожидается [Passwo], но найден [Password]). Я хочу зафиксировать эту ошибку подтверждения, чтобы можно было написать это сообщение об ошибке в листе Excel.

Я также попытался попробовать перехватить блокировку, но она также не работает, ниже приведен код для одного утверждения.

try {
        //Password
        String PasswordFromApplication;
         assertion.assertEquals(PasswordFromApplication=login.getPasswordNameLabel(), ReadValueFromID.getValue("LoginWindowPasswordLabelID"));

        String expectedKeyFromExcel2=ReadKeyFromID.getKeyValue("LoginWindowPasswordLabelID");

        String valueFromXml2=ReadXmlData.getValue(expectedKeyFromExcel2);

        assertion.assertEquals(PasswordFromApplication, valueFromXml2);

        System.out.println("LoginWindowPasswordLabelID PASSED");
    } catch (Exception e) {

        System.out.println("FAILED DUE TO "+e);

    }

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Класс java.lang.Throwable является классом root Java Иерархия исключений, которая наследуется двумя подклассами: Exception и Error. Иерархия Java Классы исключений приведены ниже:

enter image description here

при выполнении утверждения считается верным. В случае сбоя JVM выдает ошибку с именем AssertionError . Класс AssertionError является наследуемым классом Error , поэтому вы можете использовать Throwable , Error и AssertionError для перехвата ошибки подтверждения

Таким образом, блок захвата должен быть:

catch (AssertionError ae) {
        System.out.println("Assertion Error is  "+ae);
    }

ИЛИ

catch (Error e) {
        System.out.println("Assertion Error is  "+e);
    }

ИЛИ

catch (Throwable t) {
        System.out.println("Assertion Error is  "+t);
    }
0 голосов
/ 25 января 2020

Вы должны перехватить AssertionError вместо Exception, AssertionError не наследует от Exception (он наследует от Error), и именно поэтому ваш блок catch не перехватывает исключение.

рабочий код:

try {
        //Password
        String PasswordFromApplication;
         assertion.assertEquals(PasswordFromApplication=login.getPasswordNameLabel(), ReadValueFromID.getValue("LoginWindowPasswordLabelID"));
        String expectedKeyFromExcel2=ReadKeyFromID.getKeyValue("LoginWindowPasswordLabelID");
        String valueFromXml2=ReadXmlData.getValue(expectedKeyFromExcel2);
        assertion.assertEquals(PasswordFromApplication, valueFromXml2);
        System.out.println("LoginWindowPasswordLabelID PASSED");
    } catch (AssertionError e) {
        System.out.println("FAILED DUE TO "+e);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...