【发布时间】: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