Czy istnieje sposób na sprawdzenie, czy a methodOne
jest wywoływane wcześniej methodTwo
w Mockito?
public class ServiceClassA {
public void methodOne(){}
}
public class ServiceClassB {
public void methodTwo(){}
}
public class TestClass {
public void method(){
ServiceClassA serviceA = new ServiceClassA();
ServiceClassB serviceB = new ServiceClassB();
serviceA.methodOne();
serviceB.methodTwo();
}
}
java
unit-testing
mockito
froi
źródło
źródło
inOrder.verifyNoMoreInteractions();
po ostatniej weryfikacji w tym przykładzie, aby sprawdzić, czy nie wykonano innych połączeń.inOrder(firstMock, secondMock)
iinOrder(secondMock, firstMock)
? Być może możesz zaktualizować odpowiedź, aby zanotować tę notatkę.Zauważ, że możesz także użyć klasy InOrder, aby sprawdzić, czy różne metody są wywoływane po kolei na jednej próbce, a nie tylko na dwóch lub więcej próbkach.
Załóżmy, że mam dwie klasy
Foo
iBar
:Mogę wtedy dodać klasę do testów, które
Bar
„sfirstThenSecond()
metoda faktycznie nazywafirst()
, a następniesecond()
, a niesecond()
, wtedyfirst()
. Zobacz następujący kod testowy:źródło
find('foo')
, a następniefind('bar')
doNothing()
Tak, jest to opisane w dokumentacji. Musisz użyć klasy InOrder .
Przykład (przy założeniu, że utworzono już dwie próby):
źródło
W przypadku BDD jest to możliwe
źródło