2

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

你能告诉我我应该怎么做才能得到所有插曲的存根。接口和类都被定义为公共的。

4

2 回答 2

6

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

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

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

于 2012-10-29T16:07:01.953 回答
1

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

于 2014-02-08T16:14:42.513 回答