模拟对具有两个参数之一相同的方法的后续调用



在我需要单元测试的方法中,情况如下:

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 的调用?

Mockito.when(myClass.getX).thenReturn(SOME_VALUE, SOME_OTHER_VALUE)

这将为第一次调用返回SOME_VALUE,为第二次调用返回SOME_OTHER_VALUE。

相关内容

  • 没有找到相关文章

最新更新