在TDD中,lambda不是有害的吗?我们如何测试封装在另一个函数中的lambda的功能?在我看来,你将无法测试该lambda以确保它 按预期工作。单元测试的重点是测试小的代码单元。 Lambdas是我认为不可测试的小代码单元。
任何帮助,意见,澄清或链接都将受到赞赏。
答案 0 :(得分:5)
单元测试的目的是测试小的代码单元。
这并不意味着您应该感到有必要为所有小代码单元编写单元测试。私有方法可以是小代码单元,但您不能直接测试它们。您可以通过测试调用它们的代码来测试它们。同样适用于lambdas。
答案 1 :(得分:2)
我个人会测试调用lambda的代码,而不是lambda本身。如果你想测试lambda本身,你可以公开lambda公共盟友并测试它。
答案 2 :(得分:2)
是的,即使您希望测试代码,也应该使用lambdas。
一个lambda行为不端会导致父功能行为不端,只要它的测试能够很好地覆盖它。
最后,一些lambda确实更好。在产生lambda之前考虑一下,只有在它们有意义的地方使用它们并提高对代码的理解。如果一个lambda的父母行为不端,那么在lambda中找到问题应该很容易,如果它在那里。