Настройка сообщений об ошибках jUnit AssertFailure - в сочетании с журналированием slf4j - PullRequest
2 голосов
/ 02 августа 2011

Я новичок в jUnit и Selenium. В настоящее время мы проводим POC в нашем проекте для оценки пригодности инструментов.

Одним из ключевых требований для нас будет использование дружественных сообщений в случае ошибок подтверждения и проверки ошибок. Цель состоит в том, чтобы проанализировать их с помощью ручных тестеров, сделав их интуитивно понятными.

Я пробую SLF4J для регистрации сообщений INFO для удобных сообщений.

Проблема, с которой я сталкиваюсь, заключается в том, что - когда утверждения терпят неудачу, как передать пользовательское сообщение вместо сообщения по умолчанию jUnit?

Например, я хочу избавиться от следующего сообщения об ошибке подтверждения по умолчанию

ожидается, что "Health A-Z" будет соответствовать глобу "Health A-ZZ" (преобразовал глобус в регулярное выражение "Health A-ZZ"

и создайте его как

Название пункта меню не соответствует ожидаемому значению "Health A-ZZ". Фактическое значение: «Здоровье A-Z»

Вопрос1 - Есть ли способ переопределить сообщение по умолчанию тем, что я хочу? Вопрос2 - Могу ли я передать переменные параметры в сообщение и сделать его динамическим сообщением?

Пример кода:

try {
    assertEquals("Health A-ZZ", selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
    logger.info("SUCCESS: Menu Item {} title verification Passed. EXPECTED : A-Z and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
}

catch (AssertionError e) {
    logger.error("FAILURE: Menu Item {} title verification Failed. EXPECTED : A-ZZ and Actual: {}",mainCounter, selenium.getText("//div[@id='topnav']/ul/li[2]/a"));
}

Я получаю сообщение assertFailure, напечатанное дважды. Одно с сообщением об ошибке в блоке catch выше, а другое - стандартное сообщение junit assertfailre, подобное тому, о котором я упоминал выше, от которого я хотел избавиться.

Заранее спасибо.

С уважением, Пракаш

1 Ответ

5 голосов
/ 02 августа 2011

Вы можете использовать функцию подтверждения Junit.assertEquals (сообщение, ожидаемое, фактическое)

Это напечатает сообщение, которое было дано в строке сообщения в случае сбоя.Вы также можете передать строковую переменную в «message».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...