【问题标题】:Why there are no stubs for interfaces in Microsoft.Fakes为什么 Microsoft.Fakes 中没有接口存根
【发布时间】:2012-10-24 14:53:10
【问题描述】:

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

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

【问题讨论】:

    标签: microsoft-fakes


    【解决方案1】:

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

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

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

    【讨论】:

    • 您好奥列格,感谢您的回复。由于任何原因,它没有帮助。但是我在一个新的空项目上测试了 Fakes 的功能,此时接口有存根。我对两个项目文件进行了小文件比较,但找不到任何显着差异。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      • 2023-01-26
      • 2017-05-14
      相关资源
      最近更新 更多