为了账号安全,请及时绑定邮箱和手机立即绑定

如何测试私有函数或具有私有方法,字段或内部类的类?

如何测试私有函数或具有私有方法,字段或内部类的类?

如何测试私有函数或具有私有方法,字段或内部类的类?如何对具有内部私有方法,字段或嵌套类的类进行单元测试(使用xUnit)?或者通过内部链接(static在C / C ++中)或在私有(匿名)命名空间中使其成为私有的函数?为了能够运行测试而更改方法或函数的访问修饰符似乎很糟糕。
查看完整描述

4 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

测试私有方法的最佳方法是通过另一种公共方法。如果无法执行此操作,则满足下列条件之一:

  1. 私有方法是死代码

  2. 您正在测试的课程附近有一种设计气味

  3. 您尝试测试的方法不应该是私有的


查看完整回答
反对 回复 2019-05-24
?
喵喔喔

TA贡献1735条经验 获得超5个赞

我过去曾使用反射来为Java做这个,在我看来这是一个很大的错误。

严格来说,您应该编写直接测试私有方法的单元测试。您应该测试的是该类与其他对象的公共合同; 你永远不应该直接测试对象的内部。如果另一个开发人员想要对该类进行少量内部更改(这不会影响类公共合同),则他/她必须修改基于反射的测试以确保其有效。如果在整个项目中反复执行此操作,则单元测试将不再是对代码运行状况的有用度量,并开始成为开发的障碍,并对开发团队造成烦扰。

我建议改为使用代码覆盖工具(如Cobertura),以确保您编写的单元测试在私有方法中提供了良好的代码覆盖率。这样,您可以间接测试私有方法正在做什么,并保持更高的敏捷性。


查看完整回答
反对 回复 2019-05-24
  • 4 回答
  • 0 关注
  • 1342 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信