Проблема в том, что статический импорт из Hamcrest и Mockito имеет схожие имена, но возвращает Matchers и действительные значения соответственно.
Один из обходных путей - просто скопировать классы Hamcrest и / или Mockito и удалить / переименовать статические функции, чтобы их было легче запомнить и меньше отображать в автозаполнении. Вот что я сделал.
Кроме того, при использовании насмешек я стараюсь избегать assertThat
в пользу других assertions
и verify
, например,
assertEquals(1, 1);
verify(someMock).someMethod(eq(1));
вместо
assertThat(1, equalTo(1));
verify(someMock).someMethod(eq(1));
Если вы удалите классы из списка «Избранное» в Eclipse и напечатаете длинное имя, например, org.hamcrest.Matchers.equalTo
и нажмите CTRL + SHIFT + M, чтобы «Добавить импорт», тогда автозаполнение покажет только совпадения Hamcrest, а не совпадения Mockito. И вы можете сделать это другим способом, если вы не смешиваете совпадения.