2012-10-24 41 views
2

我即将在单元测试中使用Microsoft.Fakes。我读了一个tutorial,其中Microsoft.Fakes为接口创建了一个存根(在解决方案中实现),但在我的解决方案中,存根仅可用于类。为什么在Microsoft.Fakes中没有接口的存根存根

你能告诉我,我应该怎么做也为所有intercaes存根。接口和类都被定义为public。

回答

5

Fakes默认为类和接口生成存根。您可能遇到了当前的限制之一,这会导致Fakes跳过您的界面。要解决问题,

  • 打开.Fakes文件和伪造品元素的设置冗长属性为“详细”
  • 打开工具 - >选项 - >项目和解决方案 - >生成和运行,改变的MSBuild输出详细程度来“详细”
  • 构建包含.Fakes文件的项目
  • 打开Output窗口并搜索GenerateFakes任务;查看其输出信息,这些信息解释了为什么特定界面不被剪切。

在Visual Studio 2012即将推出的季度更新1中,无论日志记录设置如何,在错误列表窗口中都会将此信息报告为警告,这将使故障排除变得更加容易。

+0

嗨奥列格,谢谢你的回应。 由于任何原因,它没有帮助。但是我此时在一个新的空项目上测试了Fakes的功能,并且有接口的存根。我在两个项目文件上做了一个小文件比较,但是我找不到任何显着差异。 – llasarov

1

您可能还没有钻到适当的名称空间。假冒产品与接口在被测组件中的相同命名空间中生成。因此,例如,如果您正在测试MyApp.Validators.IRequestValidator,则在您的单元测试中,您必须使用new MyApp.Validators.Fakes.StubIRequestValidator()而不是new MyApp.Fakes.StubIRequestValidator()

相关问题