为什么Microsoft.Fakes中的接口没有存根

时间:2012-10-24 14:53:10

标签: microsoft-fakes

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

你能告诉我怎么做才能获得所有插页的存根。接口和类都定义为public。

2 个答案:

答案 0 :(得分:5)

Fakes默认为类和接口生成存根。您可能遇到了一个当前的限制,这导致Fakes跳过您的界面。要排除故障,

  • 打开.Fakes文件并将Fakes元素的Verbosity属性设置为“Verbose”
  • 打开工具 - >选项 - >项目和解决方案 - >构建并运行并将MSBuild输出详细程度更改为“Detailed”
  • 构建包含.Fakes文件的项目
  • 打开“输出”窗口并搜索GenerateFakes任务;检查其输出以获取解释特定接口未被存根的原因的信息。

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

答案 1 :(得分:1)

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