Mockito похож на довольно приятную среду для stubbing/mocking для Java. Единственная проблема заключается в том, что я не могу найти какую-либо конкретную документацию по лучшим способам использования их API. Общие методы, используемые в тестах, включают:
doXXX(???) : Stubber
when(T) : OngoingStubbing
then(T) : OngoingStubbing
verify(???) : T
given(T) : BDDOngoingStubbing
willXXX(???) : BDDStubber
Когда вы видите примеры Mockito на практике, вы видите код типа:
when(yourMethod()).thenReturn(5);
Из всех документов, которые я прочитал, я определил несколько "шаблонов" "грамматик" Mockito, полученных из последовательного соединения этих методов, как показано выше. Некоторые общие шаблоны, которые я нашел, следующие:
Когда /Then:, когда (yourMethod()), затем возвратите (5);
Указано/будет: задано (yourMethod()). willThrow (OutOfMemoryException.class);
Do/When: doReturn (7).when(yourMock.fizzBuzz());
Will/Given/Do: willReturn (any()). given (yourMethod()). doNothing();
Проверить/выполнить: проверить (yourMethod()). doThrow (SomeException.class);
Что я задыхаюсь, так это то, как выбрать правильный шаблон/комбинацию вызовов методов для моделирования моих тестовых случаев. Кажется, вы можете объединить их вместе в казалось бы бесконечные комбо, и я не уверен, какой шаблон подходит именно для этой проблемы.
Может ли какой-нибудь Mockito Guru помочь пролить свет на то, какие шаблоны/комбинации методов Mockito используются для каких типов тестовых случаев (и почему)? Спасибо заранее!