单元测试:如何在没有单元测试的情况下知道哪个私有功能已损坏?

时间:2014-02-24 15:11:50

标签: unit-testing

我无限地阅读,如:

您不需要将私有方法公开给您的测试。你的类的公共方法有一个规范。您的单元测试应该测试您的类的公共方法是否符合该规范。公共方法如何做到这一点不是一个人的事;只要您继续遵守公共方法的规范,您希望随意更改您的私人实施。

所以:

  • 我有一个公共函数,可以调用各种较小的私有函数。
  • 公共功能中断。
  • 我如何知道哪个私人功能已损坏?

2 个答案:

答案 0 :(得分:1)

单元测试不应该告诉你代码中哪个确切的行有错误。单元测试只能验证您的公共方法是否符合规范。如果某些方法无法通过测试,那么您将看到不满足规范的哪个部分。这取决于你理解为什么。如果您有异常,那么异常消息/ stacktrace可以告诉您问题的根源。您还可以调试单元测试以了解出错的地方。

如果你花了很多时间去寻找哪种私有方法有bug,那么你的课程可能太复杂或太多了。考虑提取一些功能来分离类和为它编写单元测试。

答案 1 :(得分:0)

如果您正在使用java / junit,则堆栈跟踪会显示调用的所有方法以及中断的位置。 我认为c#和其他现代语言中存在类似的机制......