【问题标题】:Shims for library class not created未创建库类的垫片
【发布时间】:2016-12-21 14:52:41
【问题描述】:

我想使用 fakes(shims) 来模拟 nj4x 库。我按照此处的指南生成它们: https://msdn.microsoft.com/en-us/library/hh549174.aspx

但是,某些类的伪造品不会生成。 我尝试了这里建议的解决方案:Shims are not generated for .NET methods

Shims are not generated for .NET methods

但仍然无法正常工作。 当我构建时,我收到这个警告:

无法为 nj4x.Strategy 生成 shim:无法解析程序集 'NLog,版本=4.0.0.0,文化=中性, PublicKeyToken=5120e14c03d0593c'。你错过了一个程序集 参考?

我现在的汇编文件是

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"
       Diagnostic="true">
  <Assembly Name="nj4x" Version="2.5.6.0"/>
  <ShimGeneration>
    <Clear/>
    <Add Namespace="nj4x!"/>
    <Add Namespace="nj4x.metatrader!"/>
  </ShimGeneration>
</Fakes>

我也尝试了其他几种方法,但都不起作用。 我真的被困在这里了。

【问题讨论】:

  • 没有下载和尝试,我猜是'!'正在拉入一些依赖于其他程序集的类。您可以尝试只为特定类(并且只为一个类)生成 Shim。如果可行,请慢慢添加其他类。
  • 我试过
  • 但是不行。
  • @doobop 感叹号的意思是“一个完全命名为 this 的类”。因此 Usama 期望 nj4x 命名空间包含一个名为 metatrader 的类型。他还期望全局命名空间中有一个名为 nj4x 的类型,这显然是不正确的。

标签: c# .net unit-testing microsoft-fakes


【解决方案1】:

我真的不知道为什么,但是一旦我为 NLog 添加了假货,就会生成所需的 nj4x 类的假货。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2010-12-23
    • 2014-10-11
    • 2012-03-19
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多