Ответ 1
Это почти то же самое.
Последние версии JUnit теперь включают hamcrest.
Infact org.junit.Assert.assertЭта подпись метода
public static <T> void assertThat(T actual,
org.hamcrest.Matcher<T> matcher)
который вы заметите, использует сочетания hamcrest.
Вы все еще можете включить свою собственную версию hamcrest becuase. JUnit не обновляется очень часто и может не всегда использовать последнюю версию hamcrest.
Согласно maven pom, В JUnit 4.11 используется hamcrest 1.3, который, по моему мнению, является самым актуальным на момент написания этой статьи.
ИЗМЕНИТЬ
Я только что прочитал вашу вторую статью http://blog.code-cop.org/2014/02/assert-or-matcherassert.html и описывает 2 незначительных отличия в hamcrest assertThat
, которые делают его более полезным:
- когда совпадение не выполняется, сообщение об ошибке включает в себя то, что было другим, а не "ожидаемым X, но было Y". пользовательские сопоставления hamcrest могут включать более подробную информацию о том, что именно было неправильно, реализовав
describeMismatch()
- Подпись
assertThat
отличается в hamcrest с использованиемT actual, Matcher<? super T> matcher
, которая позволяет суперподразделениям быть супер-типами (например, Matcher для сравнения целых чисел и парных чисел). Обычно это не имеет значения, но когда вам это нужно, это хорошая функция.
Поэтому используйте org.hamcrest.MatcherAssert.assertThat