有没有办法验证在Mockito中是否在methodTwo
之前调用了methodOne
?
public class ServiceClassA {
public void methodOne(){}
}
public class ServiceClassB {
public void methodTwo(){}
}
public class TestClass {
public void method(){
ServiceClassA serviceA = new ServiceClassA();
ServiceClassB serviceB = new ServiceClassB();
serviceA.methodOne();
serviceB.methodTwo();
}
}
6条答案
按热度按时间c2e8gylq1#
InOrder
可以帮助你做到这一点。g2ieeal72#
请注意,您还可以使用InOrder类来验证是否在单个模拟上按顺序调用了各种方法,而不仅仅是在两个或多个模拟上。
假设我有两个类
Foo
和Bar
:然后,我可以添加一个测试类来测试
Bar
的firstThenSecond()
方法实际上调用了first()
,然后调用了second()
,而不是second()
,然后调用了first()
。请参见以下测试代码:eni9jsuy3#
是的,文档中对此进行了描述。你必须使用InOrder类。
示例(假设已经创建了两个模拟):
5jvtdoz24#
对于Kotlin用户,你可以这样做:
}
ijxebb2r5#
对于BDD来说
pdsfdshx6#
当验证具有不同参数的单个方法调用的调用顺序时,本质上是相同的: