我正在测试一个使用lambda表达式匹配值的java方法。
我想测试条件为真还是假。
employee.getAppraisals().stream().anyMatch(appraisal::isPromoted)
我尝试使用下面的代码来创建模拟单元测试,但是它永远无法正常工作。我跟随的链接是:Use Mockito 2.0.7 to mock lambda expressions
Mockito.when(employee.getAppraisals()
.stream()
..anyMatch(p->p.equals(Mockito.any()))).thenReturn(true)
但是我不知道如何模拟Promotional对象,以使用模仿器将其promotion.isPromoted的bean proeprty值返回为真。
答案 0 :(得分:0)
您不想模拟整个stream()链。
您想在这里模拟两件事,getAppraisals()
,它将返回mock(Appraisal.class)
的集合。
然后,这些评估模拟将回答对isPromoted()
的方法调用。