Mockito:如何验证某些方法调用组的组顺序?
2022-09-03 15:24:09
我正在使用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();
}
但是这个测试确实测试得太多了,因为它测试了实例的顺序。但我只对不同方法的顺序感兴趣。事实上,我不想区分 的实例,它可能具有内部顺序,因此以何种顺序调用 foos 并不重要。我想将其保留为实现细节。Foo
underTest
Foo
但重要的是,之前已经调用了所有 foo,然后再调用任何其他 foo。有没有可能用Mockito来表达这一点?如何?doThisFirst()
beforeDoingThis()