Perhatikan bahwa Anda juga dapat menggunakan kelas InOrder untuk memverifikasi bahwa berbagai metode dipanggil secara berurutan, bukan hanya pada dua atau lebih mengejek.
Misalkan saya memiliki dua kelas Foo
dan Bar
:
public class Foo {
public void first() {}
public void second() {}
}
public class Bar {
public void firstThenSecond(Foo foo) {
foo.first();
foo.second();
}
}
Saya kemudian dapat menambahkan kelas tes untuk menguji bahwa Bar
's firstThenSecond()
metode benar-benar memanggil first()
, maka second()
, dan tidak second()
, kemudian first()
. Lihat kode tes berikut:
public class BarTest {
@Test
public void testFirstThenSecond() {
Bar bar = new Bar();
Foo mockFoo = Mockito.mock(Foo.class);
bar.firstThenSecond(mockFoo);
InOrder orderVerifier = Mockito.inOrder(mockFoo);
// These lines will PASS
orderVerifier.verify(mockFoo).first();
orderVerifier.verify(mockFoo).second();
// These lines will FAIL
// orderVerifier.verify(mockFoo).second();
// orderVerifier.verify(mockFoo).first();
}
}