【问题标题】:Basic mocking techniques基本的模拟技术
【发布时间】:2014-12-25 08:07:40
【问题描述】:

我是嘲笑和存根的新手。我必须为一个无法重新设计的类编写单元测试。就是这样。 该类具有必须测试的公共方法。这些公共方法使用私有方法来执行对 Web 服务的外部调用。测试下的类不是为简单的依赖注入而设计的。私有方法使用 System.Net.WebRequest 来执行 Web 服务调用。
我需要模拟这些私有方法。该任务的最佳模拟框架是什么?模拟这些私有方法的技术是什么?

【问题讨论】:

  • 我假设被测类不是接口实现?
  • 不是。任务是引入对功能代码影响尽可能小的单元测试。
  • 如果您可以提取接口,那么您至少可以轻松地模拟公共方法。当然,嘲笑并不意味着测试。如果这不是一个可行的选择,我知道有一些隔离框架可以在 IL 级别工作。我知道它们存在,但我从未使用过它们。
  • Telerik JustMock 允许您模拟非公共方法。但是,您已经提到了显而易见的事情:从长远来看,您最好进行重构/重新设计以允许依赖注入,并防止“需要”模拟私有方法。
  • 我应该提一下,只有付费版的 JustMock 允许你模拟私有方法。

标签: .net unit-testing mocking private-methods


【解决方案1】:

我好像找到了解决办法。答案是Microsoft Moles,因为项目在VS2010。我想如果是 VS2012 或 VS2013,我将不得不使用 Microsoft Fakes。

无论如何,它工作得很好。 Moles 不仅可以模拟被测类,还可以选择该类的私有方法。

【讨论】:

  • TypeMock Isolator 也有类似的功能。
  • 确实如此。但与免费的 Microsoft Moles 不同,TypeMock Isolator 相当昂贵。
猜你喜欢
  • 2013-09-13
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多