如何用Rhino mock模拟IDbSet

本文关键字:模拟 IDbSet mock Rhino 何用 | 更新日期: 2023-09-27 18:08:10

我不能让这个工作。我在我的测试中有这样的代码:

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行出现错误:

系统。typeeloadeexception:创建类型的方法'IDbSet ' 1Proxy1862178487664986a7bd03ad3b5c6f2c'从组装'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral,PublicKeyToken=a621a9e7e5c32e69'试图隐式实现an具有较弱类型参数约束的接口方法

你知道这是什么吗?

谢谢!

如何用Rhino mock模拟IDbSet

您遇到了一个已知的问题。mock(版本3.6.0.0)具有泛型方法约束。

Create方法:

TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, TEntity
由于where TDerivedEntity : class, TEntity的限制,

无法正确生成。

这里有关于该错误的更多信息:无法让RhinoMocks发出遵循泛型类型限制规则的模拟

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

对于那些仍在寻找解决方案的人。