オブジェクトでのメソッド呼び出しの順序を確認するために Mockito を使用していInOrderます。しかし、呼び出しの全体的な順序付けには関心がありません。メソッド呼び出しの特定のグループがすべて、他のメソッドが呼び出される前に発生するということだけです。たとえば、このように
@Test
public void testGroupOrder() {
Foo foo1 = mock(Foo.class);
Foo foo2 = mock(Foo.class);
Bar underTest = new Bar();
underTest.addFoo(foo1);
underTest.addFoo(foo2);
underTest.fire()
InOrder inOrder = inOrder(foo1,foo2);
inorder.verify(foo1).doThisFirst();
inorder.verify(foo2).doThisFirst();
inorder.verify(foo1).beforeDoingThis();
inorder.verify(foo2).beforeDoingThis();
}
Fooしかし、このテストはインスタンスの順序をテストするため、テストが多すぎます。しかし、私はさまざまな方法の順序にのみ興味があります。underTest実際、 のインスタンスを区別したくありませFooん。内部順序があるかどうかに関係なく、foo がどの順序で呼び出されるかは問題ではありません。実装の詳細としてそれを保持したいと思います。
ただし、他の fooで呼び出される前にすべてdoThisFirst()の foo で呼び出されていることが重要です。それをMockitoで表現することは可能ですか?どのように?beforeDoingThis()