ध्यान दें कि आप इनऑर्डर श्रेणी का उपयोग यह सत्यापित करने के लिए भी कर सकते हैं कि विभिन्न तरीकों को एक मॉक पर क्रम में बुलाया जाता है, न कि केवल दो या अधिक मॉक पर।
मान लीजिए कि मेरे दो वर्ग हैं Foo
और Bar
:
public class Foo {
public void first() {}
public void second() {}
}
public class Bar {
public void firstThenSecond(Foo foo) {
foo.first();
foo.second();
}
}
मैं तो यह है कि परीक्षण के लिए एक परीक्षण वर्ग में जोड़ सकते हैं Bar
की firstThenSecond()
विधि वास्तव में कॉल first()
, तो second()
नहीं है, और second()
, फिर first()
। निम्नलिखित परीक्षण कोड देखें:
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();
}
}