我正在尝试为包含 Lambda 表达式的构造函数编写 Junit
@Component
public class Child extends parent {
@Autowired
Child(
SessionFactory sessionFactory, Properties properties, CqlSession cqlSession) {
this.setPopulator(
session ->
properties
.getScripts()
.forEach(query -> cqlSession.execute(cqlSession.prepare(query).bind())));
}
}
this.setPopulator() 它的 Parent 方法在创建 Child 对象之前被调用。
单元测试中未涵盖 this.setPopulator() 中的 Lambda 表达式。
this.setPopulator() 将 Populator.java 作为参数,它是方法“populate()”的功能接口。
您可能可以做的是查看使用正确的参数调用 setPopulator 。可以使用“Mockito.verify”来实现。
此外,您还可以看到“cqlSession.execute()”被调用了特定的次数,并且参数正确。
然后类似:
Mockito.verify(cqlSession, Mockito.times(3)).execute(Mockito.any());