【发布时间】:2011-06-27 20:53:43
【问题描述】:
我有以下设置代码:
MockOf<IObjectSet<Dummy>>().Setup(c => c.AddObject(dummy)).Verifiable();
MockOf<IObjectContextWrapper>().Setup(c => c.GetObjectSet<Dummy>()).Returns(MockOf<IObjectSet<Dummy>>().Object);
其中Dummy 是一个空类定义,dummy 是一个Dummy。 MockOf<T>() 是基类上的一个模拟管理功能,它基本上确保每次在一个类型上调用它时,它都返回相同的模拟实例。
包含此设置代码的测试失败并显示 TypeLoadException 和以下消息:
System.TypeLoadException : 来自程序集“DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=a621a9e7e5c32e69”的类型“IObjectSet`1Proxy389e220f10aa4d9281d0b9e136edc1d4”正在尝试实现无法访问的接口。
在 System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule 模块,Int32 tk,ObjectHandleOnStack 类型)
在 System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
在 System.Reflection.Emit.TypeBuilder.CreateType()
在 Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType()
在 Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(类型 proxyTargetType,Type[] 接口,ProxyGenerationOptions 选项)
在 Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(类型 interfaceToProxy,Type[] additionalInterfacesToProxy,ProxyGenerationOptions 选项,IInterceptor[] 拦截器)
在 Moq.Mock1.<InitializeInstance>b__0()1.InitializeInstance()
at Moq.Mock
在 Moq.Mock`1.get_Object()
在 RepositoryTest.cs 中的 OddEnds.Tests.Data.EntityFramework.RepositoryTest.Delete_DeletesObjectFromObjectSet():第 43 行
我已导入System.Data.Objects 并在测试项目和被测试类所在的项目中引用了 System.Data.Entity.dll 和 Microsoft.Data.Entity.CTP.dll。构建成功,没有错误、警告或消息(除了一些与代码合同相关的...)
我该如何解决这个问题?
【问题讨论】:
标签: moq typeloadexception