オブジェクトでのメソッド呼び出しの順序を確認するために 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()