Поиск…


Простая проверка вызова метода

Можно проверить, был ли метод вызван макетом с помощью Mockito.verify() .

Original mock = Mockito.mock(Original.class);
String param1 = "Expected param value";
int param2 = 100; // Expected param value

//Do something with mock

//Verify if mock was used properly
Mockito.verify(mock).method();
Mockito.verify(mock).methodWithParameters(param1, param2);

Проверка порядка вызовов

В некоторых случаях может быть недостаточно знать, было ли более одного метода вызвано. Важен также порядок вызова методов. В таком случае вы можете использовать InOrder класс Mockito для проверки порядка методов.

SomeClass mock1 = Mockito.mock(SomeClass.class);
otherClass mock2 = Mockito.mock(OtherClass.class);

// Do something with mocks

InOrder order = Mockito.inOrder(mock1, mock2)
order.verify(mock2).firstMethod();
order.verify(mock1).otherMethod(withParam);
order.verify(mock2).secondMethod(withParam1, withParam2);

InOrder.verify() работает так же, как Mockito.verify() все другие аспекты.

Проверка аргументов вызова с помощью ArgumentCaptor

ArgumentCaptor будет получать фактические аргументы вызова, которые были переданы методу.

ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg

Для случаев множественных вызовов издевающегося метода для получения всех аргументов вызова

List<Foo> invocationArgs = captor.getAllValues();

Такой же подход используется для захвата varargs.

Также есть возможность создать ArgumentCaptor с @Captor аннотации @Captor :

@Captor
private ArgumentCaptor<Foo> captor;


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow