2015-08-29 79 views
1

我有一个lambda函数下面的代码:代码覆盖率lambda函数

obj.method(param,() -> { 
     //code here 
}) 

我怎样才能通过测试涵盖了lambda函数的代码?

+4

这一切都取决于'obj.method()'用它做什么。如果它立即调用它,那么就调用调用'obj.method()'的方法。如果它稍后保存,则确保稍后的操作由您的测试执行。 –

+3

你能分享一个更完整的片段吗? – Mureinik

+5

我倾向于将非平凡的lambda函数转换为方法,并简单地使用方法引用。这样你就保留了lambda提供的优点 - 简洁的代码传递回调 - 但也保留了方法提供的优势 - 作为独立单位的可视性。 –

回答

2

你可以使用反射,但这很可能是容易出错和反生产的。

我建议你调用使用lambda的方法。