如何用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具有较弱类型参数约束的接口方法
你知道这是什么吗?
谢谢!
您遇到了一个已知的问题。mock(版本3.6.0.0)具有泛型方法约束。
Create方法:
TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, TEntity
由于where TDerivedEntity : class, TEntity
的限制,无法正确生成。
这里有关于该错误的更多信息:无法让RhinoMocks发出遵循泛型类型限制规则的模拟
不幸的是,看起来我们将不得不等待下一个版本的Rhino。模拟来解决这个问题。
对于那些仍在寻找解决方案的人。