【发布时间】:2014-12-25 08:07:40
【问题描述】:
我是嘲笑和存根的新手。我必须为一个无法重新设计的类编写单元测试。就是这样。
该类具有必须测试的公共方法。这些公共方法使用私有方法来执行对 Web 服务的外部调用。测试下的类不是为简单的依赖注入而设计的。私有方法使用 System.Net.WebRequest 来执行 Web 服务调用。
我需要模拟这些私有方法。该任务的最佳模拟框架是什么?模拟这些私有方法的技术是什么?
【问题讨论】:
-
我假设被测类不是接口实现?
-
不是。任务是引入对功能代码影响尽可能小的单元测试。
-
如果您可以提取接口,那么您至少可以轻松地模拟公共方法。当然,嘲笑并不意味着测试。如果这不是一个可行的选择,我知道有一些隔离框架可以在 IL 级别工作。我知道它们存在,但我从未使用过它们。
-
Telerik JustMock 允许您模拟非公共方法。但是,您已经提到了显而易见的事情:从长远来看,您最好进行重构/重新设计以允许依赖注入,并防止“需要”模拟私有方法。
-
我应该提一下,只有付费版的 JustMock 允许你模拟私有方法。
标签: .net unit-testing mocking private-methods