使用Moq
模拟具有内部构造函数的类型
我正在尝试从Microsoft Sync Framework模拟一个类。它只有一个内部构造函数。当我尝试以下内容时:
var fullEnumerationContextMock = new Mock<FullEnumerationContext>();
我收到此错误:
System.NotSupportedException:Parent
没有默认构造函数。
默认构造函数必须是
明确定义。
这是堆栈跟踪:
System.Reflection.Emit.TypeBuilder.DefineDefaultConstructorNoLock(MethodAttributes
属性)
System.Reflection.Emit.TypeBuilder.DefineDefaultConstructor(MethodAttributes
属性)
System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
System.Reflection.Emit.TypeBuilder.CreateType()
Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType()
Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(类型[]
接口,ProxyGenerationOptions选项)
Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,
ProxyGenerationOptions选项)
Castle.DynamicProxy.ProxyGenerator.CreateClassProxyType(Type classToProxy,Type [] additionalInterfacesToProxy,
ProxyGenerationOptions选项)
Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,
ProxyGenerationOptions选项,Object [] constructorArguments,
IInterceptor []拦截器)
Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,
ProxyGenerationOptions选项,IInterceptor []拦截器)
Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,IInterceptor []
拦截器)
Moq.Mock1.<InitializeInstance>b__0()
Moq.PexProtector.Invoke(Action action)
Moq.Mock
1.InitializeInstance()
我该如何解决这个问题呢?
没有找到相关结果
已邀请:
4 个回复
森含械
才改隘瘁
它在Moq中可能类似。
师埠女
),我嘲笑然后我有两个重载我试图测试的方法,一个需要
而另一个需要
。它感觉不太好,但确实有效。任何更好的建议或改进都将受到欢迎。
倾坞髓