小编Jil*_*ian的帖子

TDD工作单元模式Moq无法实例化类错误的代理

我是测试驱动开发的新手,并尝试对mvc应用程序进行单元测试.我正在使用Moq和Ninject,并尝试遵循工作单元存储库模式.我收到所有测试的System.ArgumentException错误.这是错误消息和错误堆栈跟踪:

Test method LOMSv4.Tests.Controllers.AutobytelControllerTest.Index_Contains_All_Requests threw exception: 
System.ArgumentException: Can not instantiate proxy of class: LOMSv4_DAL.Autobytel.Concrete.RequestRepository.
Could not find a parameterless constructor.
Run Code Online (Sandbox Code Playgroud)

参数名称:constructorArguments

Castle.DynamicProxy.ProxyGenerator.CreateClassProxyInstance(Type proxyType, List`1 proxyArguments, Type classToProxy, Object[] constructorArguments)
Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type classToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, Object[] constructorArguments, IInterceptor[] interceptors)
Moq.Proxy.CastleProxyFactory.CreateProxy[T](ICallInterceptor interceptor, Type[] interfaces, Object[] arguments)
Moq.Mock`1.<InitializeInstance>b__0()
Moq.PexProtector.Invoke(Action action)
Moq.Mock`1.InitializeInstance()
Moq.Mock`1.OnGetObject()
Moq.Mock.GetObject()
Moq.Mock.get_Object()
Moq.MockDefaultValueProvider.ProvideDefault(MethodInfo member)
Moq.QueryableMockExtensions.FluentMock[T,TResult](Mock`1 mock, Expression`1 setup)
lambda_method(Closure )
Moq.Mock.GetInterceptor(Expression fluentExpression, Mock mock)
Moq.Mock.<>c__DisplayClass1c`2.<Setup>b__1b()
Moq.PexProtector.Invoke[T](Func`1 function)
Moq.Mock.Setup[T,TResult](Mock mock, Expression`1 expression, Func`1 condition)
Moq.Mock`1.Setup[TResult](Expression`1 expression)
Run Code Online (Sandbox Code Playgroud)

这是我的测试类:

[TestClass]
public class AutobytelControllerTest …
Run Code Online (Sandbox Code Playgroud)

tdd asp.net-mvc unit-testing moq unit-of-work

4
推荐指数
1
解决办法
7220
查看次数

标签 统计

asp.net-mvc ×1

moq ×1

tdd ×1

unit-of-work ×1

unit-testing ×1