Почему JUnit не предоставляет методы assertNotEquals?

Функция обратного вызова - это функция, которая должна вызываться, когда выполняется определенное условие. Вместо того, чтобы немедленно вызываться, функция обратного вызова вызывается в определенную точку в будущем.

Обычно она используется, когда задача запускается, которая завершится асинхронно (т.е. закончится через некоторое время после вызова функции )

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

414
задан Joachim Sauer 15 January 2013 в 16:08
поделиться

2 ответа

Я бы посоветовал вам использовать новые утверждения стиля assertThat () , которые могут легко описывать все виды отрицаний и автоматически строить описание того, что вы ожидали и что вы получили, если утверждение не удалось:

assertThat(objectUnderTest, is(not(someOtherObject)));
assertThat(objectUnderTest, not(someOtherObject));
assertThat(objectUnderTest, not(equalTo(someOtherObject)));

Все три варианта эквивалентны, выберите тот, который вы считаете наиболее читаемым.

Чтобы использовать простые имена методов (и позволить этому напряженному синтаксису работать), вы нужен этот импорт:

import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
398
ответ дан 22 November 2019 в 23:24
поделиться

Интересно то же самое. API Assert не очень симметричен; для проверки идентичности объектов он предоставляет assertSame и assertNotSame .

Конечно, это не так уж много, чтобы написать:

assertFalse(foo.equals(bar));

С таким утверждением единственное информативной частью вывода, к сожалению, является название метода тестирования, поэтому описательное сообщение следует формировать отдельно:

String msg = "Expected <" + foo + "> to be unequal to <" + bar +">";
assertFalse(msg, foo.equals(bar));

Это, конечно, настолько утомительно, что лучше использовать собственный assertNotEqual . К счастью, в будущем он, возможно, будет частью JUnit: JUnit issue 22

49
ответ дан 22 November 2019 в 23:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: