Можете ли вы сделать сообщения об ошибках assertTrue более точными c? - PullRequest
0 голосов
/ 31 января 2020

Я довольно часто использую метод assertTrue testNG, чтобы проверить, например, правильны ли транзакции

public void verifyAmount(WebElement element, String someText){
assertTrue(element.getText().contains(someText));
}

и, если он терпит неудачу, он говорит

java.lang.AssertionError: did not expect to find [true] but found[false]

Можно ли изменить ошибку подтверждения на сказать, что именно пошло не так, а не просто утверждение верно / ложно? Можно ли сделать это сообщение более конкретным c? Есть ли способ сделать ошибку утверждения сказать:

java.lang.AssertionError: did not expect to find [10.000 $] but found[3000 $]

Ответы [ 3 ]

6 голосов
/ 31 января 2020

Вы можете превратить это:

public void verifyAmount(WebElement element, String someText){
assertTrue(element.getText().contains(someText));
}

в:

public void verifyAmount(WebElement element, String someText, String message){
assertTrue(element.getText().contains(someText), message);
}

и передать сообщение об ошибке, которое, по вашему мнению, должно быть там.

РЕДАКТИРОВАТЬ: I ' Я привык использовать другие методы assert, которые принимают сообщение в качестве первого параметра, но Лонг Нгуен прав в своем ответе: TestNG принимает сообщение как последний параметр assertTrue.

5 голосов
/ 31 января 2020

https://www.javadoc.io/doc/org.testng/testng/6.8.17/org/testng/Assert.html#assertTrue (логическое значение)

Посмотрите документацию, вы можете увидеть, что вы можете добавить сообщение после условия.

public static void assertTrue(boolean condition, String message)

0 голосов
/ 31 января 2020

Спасибо всем за ответы,

 assertTrue(string.contains(property), errorMessage);

сделал работу

...