我正在使用 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
,它可能有内部顺序或没有,所以调用 foos 的顺序无关紧要。我想将其保留为实现细节。
但重要的是,在任何其他 foo上调用之前doThisFirst()
已在所有foo 上调用。可以用 Mockito 来表达吗?如何?beforeDoingThis()