Recherche…


Vérification simple de l'appel de méthode

On peut vérifier si une méthode a été appelée sur un simulacre en utilisant 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);

Vérifier l'ordre des appels

Dans certains cas, il peut ne pas suffire de savoir si plusieurs méthodes ont été appelées. L'ordre d'appel des méthodes est également important. Dans ce cas , vous pouvez utiliser InOrder classe de Mockito pour vérifier l'ordre des méthodes.

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() fonctionne comme Mockito.verify() tous les autres aspects.

Vérifier les arguments d'appel à l'aide d'ArgumentCaptor

ArgumentCaptor va recevoir les arguments d'appel réels passés à la méthode.

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

Pour les cas d'appels multiples de méthode simulée pour recevoir tous les arguments d'appel

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

La même approche est utilisée pour capturer varargs.

Il est également possible de créer ArgumentCaptor aide de l'annotation @Captor :

@Captor
private ArgumentCaptor<Foo> captor;


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow