在一种我需要进行单元测试的方法中,情况如下:
Predicate<MyClass> predicate1 = (MyClass myClass) -> myClass.getX().equals(SOME_VALUE);
List<MyClass> targets = this.filterMyClass(listOfMyClass, predicate1);
if (CollectionUtils.isEmpty(targets)) {
Predicate<MyClass> predicate2 = (MyClass myClass) -> myClass.getX().equals(SOME_OTHER_VALUE);
targets = this.filterMyClass(listOfMyClass, predicate2);
}
可以看出,filterMyClass()
被两次调用,第一个参数相同(列表),而第二个参数不同(谓词)。
如何模拟filterMyClass的调用?
答案 0 :(得分:0)
Mockito.when(myClass.getX).thenReturn(SOME_VALUE, SOME_OTHER_VALUE)
这将为第一次调用返回SOME_VALUE,为第二次调用返回SOME_OTHER_VALUE。