Поиск статических операторов импорта для конструкций Mockito
заявления для Mockito вещи. Можно подумать, что кто-то просто бросит стол, говоря это anyInt() происходит от орг.mockito.Первомайскую и когда() происходит от орг.mockito.Mockito и т. д. но это было бы слишком полезно для новичков, не так ли?
такого рода вещи, особенно при смешивании с множеством других операторов импорта, заканчивающихся звездочками, не всегда очень полезно:
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
Да, я знаю и пытаюсь использовать Окно Eclipse - > Настройки - > Java - > Редактор - > Content Assist - > Избранное механизм. Это помогает, Но не бьет по голове.
любые ответы на этот вопрос будут оценены.
большое спасибо, Расс
3 ответа:
проблема в том, что статический импорт из Hamcrest и Mockito имеют похожие имена, но возвращают Сопоставители и реальные значения соответственно.
одна работа-это просто скопировать классы 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 matchers, а не какие-либо Mockito matchers. И вы можете сделать это по-другому, пока вы не смешиваете matchers.
вот что я делал, чтобы справиться с ситуацией.
Я использую глобальный импорт в новом тестовом классе.
import static org.junit.Assert.*; import static org.mockito.Mockito.*; import static org.mockito.Matchers.*;
когда вы закончите писать свой тест и нужно зафиксировать, вы просто CTRL+SHIFT+O, чтобы организовать пакеты. Например, вы можете просто остаться с:
import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Matchers.anyString;
Это позволяет вам кодировать, не застревая, пытаясь найти правильный пакет для импорта.