Tho*_*mas 6 c# generics moq mocking
完全简单的情况,但我不能让它工作.我遇到了使用Moq模拟泛型方法(在本例中,在Ninject内核接口上)的问题:
T Get<T>();
Run Code Online (Sandbox Code Playgroud)
我设置了我的模拟对象:
Mock<IKernel> mockKernel = new Mock<IKernel>();
mockKernel.Setup(x => x.Get<IGetUserQuery>()).Returns(new GetUserQuery());
Run Code Online (Sandbox Code Playgroud)
在运行时,我得到以下异常:
Expression references a method that does not belong to the mocked object: x => x.Get<IGetUserQuery>(new[] { })
Run Code Online (Sandbox Code Playgroud)
知道为什么要扔这个吗?我之前在没有问题的情况下嘲笑Moq中的泛型......是否存在不支持通用模拟的情况?这似乎是一个简单的案例.唯一的缺点是IGetUserQuery继承了泛型类型:
IGetUserQuery : ICommand<UserQueryInput, UserQueryOutput>
Run Code Online (Sandbox Code Playgroud)
我没有看到这会产生问题,因为这个ICommand实现的泛型类型是由IGetUserQuery静态定义的,所以我怀疑这会让Moq感到困惑.
提前致谢
| 归档时间: |
|
| 查看次数: |
2848 次 |
| 最近记录: |