NSubstitute不处理内部属性

时间:2013-11-14 08:12:03

标签: c# internal nsubstitute

假设我有以下课程:

public abstract class Test
{
    internal abstract int Prop 
    {
        get;
    }
}

现在,我尝试使用NSubstitute进行模拟:

var mock = Substitute.For<Test>();

但那失败了:

  

来自程序集的类型为“Castle.Proxies.TestProxy”的方法'get_Prop'   'DynamicProxyGenAssembly2,Version = 0.0.0.0,Culture = neutral,   PublicKeyToken = a621a9e7e5c32e69'没有实现。

我考虑将NSubstitute添加到[InternalsVisibleTo],但遗憾的是我已经过测试的程序集已签名,NSubstitute不是,Internals不能是VisibleTo无符号类。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:7)

我找到了解决方案。必须将以下行添加到程序集的Assembly.cs文件中,他要测试测试程序集):

[assembly:InternalsVisibleTo("DynamicProxyGenAssembly2,PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]