我尝试使用MoqMockingKernel类。来自Ninject.MockingKernel Extension的(Ninject.MockingKernel.Moq)进行单元测试。
在初始化MoqMockingKernel时,我收到以下错误:
System.TypeLoadException:System.TypeLoadException:Inheritance 违反安全规则的类型: 'Ninject.MockingKernel.MockingKernel'。派生类型必须匹配 基本类型的安全可访问性或不太容易访问..
我的初始化代码:
private MoqMockingKernel mockingKernel;
private Mock<IUnitOfWork> unitOfWorkMock;
private IExternalServiceRepository externalServiceRepository;
[TestInitialize]
public void Initialize()
{
this.mockingKernel = new MoqMockingKernel();
this.mockingKernel.Bind<IUnitOfWork>().ToMock();
this.unitOfWorkMock = this.mockingKernel.GetMock<IUnitOfWork>();
externalServiceRepository = new ExternalServiceRepository { Kernel = this.mockingKernel };
}
如何解决此问题TypeLoadException
?
答案 0 :(得分:4)
您使用的是.Net framework&gt; = 4.0?
请参阅此conversation
我从这些说明中得到了建议:我通过添加此行修改了MockingKernel源代码
[组件: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
到项目Ninject.MockingKernel和Ninject.MockingKernel.Moq中的AssemblyInfo.cs。 然后我重新编译了解决方案,安装了dll并且我的代码开始工作了!
我希望这对你有用。