作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以我正在寻找一些关于如何测试我编写的类的建议。
它有意包含一个公共(public)方法 Run()
,它接受变量和一组长时间运行的进程。此方法包含对执行特定任务但不应公开访问的私有(private)方法的大量调用。
我的查询是,在这种情况下,对我的所有私有(private)方法进行单元测试似乎合乎逻辑。然而,很多人认为测试私有(private)方法是一种不好的做法。
所以我的问题是我应该继续测试私有(private)方法,还是有人遇到过类似情况并且可以建议替代方法?我绝对无法通过一个公共(public)方法可靠地测试所有私有(private)方法。
如果我的问题不是很清楚,请提供任何帮助,我们深表歉意。如果有任何帮助,该应用程序是用 C# 编写的。
谢谢
最佳答案
就我个人而言,我对这类事情采取务实的观点 - 可以将单元测试设为“白盒”测试(即您可以考虑实现细节并对其进行测试),但不要走得太远他们最终变得非常脆弱的路线。
我会将私有(private)方法设为内部并通过 InternalsVisibleTo
测试它们。还可以仅通过 Run
方法运行一些“黑盒”测试...听起来这些实际上是集成测试,而不是单元 测试。
要考虑的另一件事是这是否真的应该是一个类。任务可以分开吗?它们本身作为单独的类是否有意义,当前类只是协调它们?
关于c# - 如何用一个入口点对一个类进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4376309/
我是一名优秀的程序员,十分优秀!