Использование Mockito необходимо для перезаписи всех методов? - PullRequest
0 голосов
/ 31 августа 2018

Использование его для тестирования весной. Использование @Mock Mockito необходимо для того, чтобы перезаписать все ответы методов оригинального класса с помощью предложений when? А в чем разница с @MockBean?

1 Ответ

0 голосов
/ 31 августа 2018

Это не аксессуар для перезаписи всех методов.

@ Mock - это чистая библиотека Mockito, где @MockBean - это весенняя реализация Mockito

Таким образом, в вашем классе компонентов Spring, если не определены поля @Autowired (точно так же, как простой Java-класс для макета в качестве объекта), тогда используйте аннотацию @Mock для макета объекта этого класса.

Но в вашем классе компонентов sping есть поля @Autowired, и вы хотите, чтобы контейнер Spring инициализировал эти поля как объект Mock, а затем использовал аннотацию @MockBean (Spring будет делать mock и автоматически связывать его).

Например

class Test {

public void testMethod(){ -- some code --}

}

Вы можете использовать аннотацию @Mock для тестового вызова, чтобы ее смоделировать. В классе Test нет других зависимостей или полей.

@Component
class Test {

@Autowired 
Other other;

public void testMethod(){ -- some code --};

}

Тогда вы можете смоделировать Другой объект, используя @MockBean, если вы хотите смоделировать его и передать функциональность другого (т.е. мы смоделируем слой DAO и не вызываем фактическую логику). Spring контейнер инициализирует это другое поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...