如何过滤垫片的泛型类?

时间:2014-08-18 07:26:22

标签: c# unit-testing shim

我有一个类似于以下的通用类

public class HelperClass<T> where T : DBTable, new()
{
}

我必须对这个类进行shim,但是当我编译代码时,我会收到警告。 我在.fakes中添加了以下行

<pre lang="c#"><Add FullName="A.B.HelperClass" /></pre>

当我设置diagnostics = true时, 它试图像HelperClass'1

那样填充类

如何在此方案中应用过滤器?

1 个答案:

答案 0 :(得分:0)

使用以下命令为所有版本的泛型类型生成填充程序。

<ShimGeneration>
    </Clear>
    <Add TypeName="HelperClass`1"/>
</ShimGeneration>

如果您碰巧也有一个同名的非泛型类,上面的内容将不会为它生成填充程序。如果您希望为两者生成它们,则需要使用以下内容。

<ShimGeneration>
    </Clear>
    <Add TypeName="HelperClass"/>
</ShimGeneration>

最后,如果您希望为非通用产生填充物,则需要使用以下内容。

<ShimGeneration>
    </Clear>
    <Add TypeName="HelperClass!"/>
</ShimGeneration>

我不相信您可以为通用类的选定版本生成填充程序。所以如果你希望生成ShimHelperClass而不是ShimHelperClass,我相信你运气不好。