Поиск статических операторов импорта для конструкций Mockito


<!-- Я пытаюсь пробиться сквозь кирпичную стену между мной и Мокито. Я вырвал свои волосы, пытаясь получить правильный импорт статический!--3-->

заявления для Mockito вещи. Можно подумать, что кто-то просто бросит стол, говоря это anyInt() происходит от орг.mockito.Первомайскую и когда() происходит от орг.mockito.Mockito и т. д. но это было бы слишком полезно для новичков, не так ли?

такого рода вещи, особенно при смешивании с множеством других операторов импорта, заканчивающихся звездочками, не всегда очень полезно:

import static org.junit.Assert.*;
import static org.mockito.Mockito.*;

Да, я знаю и пытаюсь использовать Окно Eclipse - > Настройки - > Java - > Редактор - > Content Assist - > Избранное механизм. Это помогает, Но не бьет по голове.

любые ответы на этот вопрос будут оценены.

большое спасибо, Расс

3 62

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;

Это позволяет вам кодировать, не застревая, пытаясь найти правильный пакет для импорта.

For is ()

import static org.hamcrest.CoreMatchers.*;

для assertThat()

import static org.junit.Assert.*;

для when() и verify ()

import static org.mockito.Mockito.*;