Ich möchteWie man Aufrufe von Aufrufen zu einem einzigen Schein geltend macht?
sagen einen JUnit-Test mit Mockito schreibendies meine Mock ist:
IServerApi routingServerApi = mock(ServerApi.class);
when(routingServerApi.sendRequest(anyString(), eq("request1"))).thenReturn(myObj1);
when(routingServerApi.sendRequest(anyString(), eq("request2"))).thenReturn(myObj2);
Ich möchte sicherstellen, dass sendRequest
mit request1
nur aufgerufen wird, bevor es mit request2
(und kein anderer Aufruf aufgerufen wird zwischen Sie).
Wie kann ich das tun?
ich diese SOF Frage gesehen haben,
aber ich möchte nur ein Mock Reihenfolge der Anrufe, um zu überprüfen, nicht zwei.
Diese Syntax für mich nicht funktioniert (Kompilierungsfehler, wenn Initing inOrder()
)
InOrder inOrder = inOrder(mockRoutingServerApi);
inOrder.verify(mockRoutingServerApi).sendRtUpdates(time1, ImmutableList.of("update1"));
inOrder.verify(mockRoutingServerApi).sendRoutingRequest("request1");
inOrder.verify(mockRoutingServerApi).sendRtUpdates(time1, ImmutableList.of("update2"));
inOrder.verify(mockRoutingServerApi).sendRoutingRequest("request2");
Es erkennt nicht inOrder()
Einige kommentierte ich ArgumentCaptor
verwenden können, aber ich couldn Ich sehe nicht wie.
Was sagt die Fehlermeldung? Ihr Code sieht richtig aus und sollte keinen Kompilierungsfehler ergeben, da 'inOrder (Object ... mocks) 'varargs erhalten. –
es erkennt nicht inOrder() Methode –