Ответ 1
Вы пробовали equalTo(T)
?
assertThat(someValue, equalTo(false));
Я не вижу, что is(T)
устарел - is (Класс) является неактуальным, однако.
Я использую следующий код на данный момент, чтобы утверждать значение boolean
, однако метод org.hamcrest.Matchers.is()
устарел.
assertThat(someValue, is(false));
Есть ли простой альтернативный синтаксис для проверки логических значений без обращения к assertTrue()
, который дает вам плохие сообщения об ошибках типа "java.lang.AssertionError"
Изменить после получения комментариев/ответов
Мои первоначальные проблемы были подняты, потому что Eclipse показывает следующий оператор импорта как устаревший
При просмотре API Hamcrest API существует 3 перегруженных варианта метода is()
, только один из которых устарел.
Поэтому, чтобы прояснить комментарий @mark и ответ от @matt, использование is()
, которое я опубликовал выше, является допустимым и не устарело.
Вы пробовали equalTo(T)
?
assertThat(someValue, equalTo(false));
Я не вижу, что is(T)
устарел - is (Класс) является неактуальным, однако.
Я думал, что это проблема транзитивной зависимости, но на самом деле это просто проблема с отображением в Eclipse, где он отмечает импорт как устаревший, потому что одна перегруженная форма. Код должен компилироваться, поскольку импорт будет раскрывать все формы.
Устаревшая форма была удалена из источника и не будет существовать в следующей версии (1.4).
Оригинальный ответ
Проблема заключается в том, что JUnit включает в себя набор классов Hamcrest в JAR. Вы можете использовать junit-dep.jar
пока, но более новые версии (4.9 и 4.10 до сих пор) JUnit опускают их.
Говорят, используйте instanceOf
для класса в документе.
http://junit.org/javadoc/latest/org/hamcrest/core/Is.html#isA(java.lang.Class)
is(IOException.class);
будет
is(instanceOf(IOException.class));
например.