我应该在TDD中使用lambdas吗?

时间:2014-12-24 15:47:32

标签: java c# unit-testing lambda

在TDD中,lambda不是有害的吗?我们如何测试封装在另一个函数中的lambda的功能?在我看来,你将无法测试该lambda以确保它 按预期工作。单元测试的重点是测试小的代码单元。 Lambdas是我认为不可测试的小代码单元。

任何帮助,意见,澄清或链接都将受到赞赏。

3 个答案:

答案 0 :(得分:5)

  

单元测试的目的是测试小的代码单元。

这并不意味着您应该感到有必要为所有小代码单元编写单元测试。私有方法可以是小代码单元,但您不能直接测试它们。您可以通过测试调用它们的代码来测试它们。同样适用于lambdas。

答案 1 :(得分:2)

我个人会测试调用lambda的代码,而不是lambda本身。如果你想测试lambda本身,你可以公开lambda公共盟友并测试它。

答案 2 :(得分:2)

是的,即使您希望测试代码,也应该使用lambdas。

一个lambda行为不端会导致父功能行为不端,只要它的测试能够很好地覆盖它。

最后,一些lambda确实更好。在产生lambda之前考虑一下,只有在它们有意义的地方使用它们并提高对代码的理解。如果一个lambda的父母行为不端,那么在lambda中找到问题应该很容易,如果它在那里。