如何嘲笑IDbSet与犀牛嘲笑(How to mock IDbSet with Rhino Mock

2019-10-30 04:35发布

我不能得到这个工作的。 我有我的测试验证码

MockRepository repository = new MockRepository();
IDbSet<SystemUser> userSet = repository.StrictMock<IDbSet<SystemUser>>();
Expect.Call(userSet.Any(u => u.Id == "UserName")).Return(true);
// More code follows

但炸弹出的StrictMock与错误行:

System.TypeLoadException:方法从组件类型“IDbSet`1Proxy1862178487664986a7bd03ad3b5c6f2c”“创建”“DynamicProxyGenAssembly2,版本= 0.0.0.0,文化=中性公钥= a621a9e7e5c32e69”试图隐式实现与较弱的类型参数约束的接口方法

任何想法,这可能是什么呢?

谢谢!

Answer 1:

你遇到了一个已知问题,Rhino.Mocks(3.6.0.0版本)与泛型方法约束。

“创建”方法:

TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, TEntity

未能被生成,因为约束的正确where TDerivedEntity : class, TEntity

这里有关于错误的详细信息: 无法获取RhinoMocks发出下面的泛型类型限制规则进行模拟

不幸的是,看起来我们将不得不等待Rhino.Mocks的下一个版本,以解决这一问题。



Answer 2:

对于那些谁仍然在寻找这个问题的解决方案。 犀牛嘲笑3.6.1,后来解决了这个问题。



文章来源: How to mock IDbSet with Rhino Mocks