开发者

How to mock IDbSet with Rhino Mocks

I can't get this working at all. I've got this code in my test:

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

But it bombs out on the StrictMock line with the error:

System.TypeLoadException: Method '开发者_如何转开发Create' on type 'IDbSet`1Proxy1862178487664986a7bd03ad3b5c6f2c' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=a621a9e7e5c32e69' tried to implicitly implement an interface method with weaker type parameter constraints

Any ideas what this could be?

Thanks!


You have encountered a known issue that Rhino.Mocks (version 3.6.0.0) has with generic method constraints.

The 'Create' method:

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

is failing to be generated correctly because of the constraints where TDerivedEntity : class, TEntity.

There is more information regarding the bug here : Can't get RhinoMocks to emit a mock that follows the generic type restriction rules

Unfortunately, it looks like we are going to have to wait for the next version of Rhino.Mocks to address the issue.


For those who are still looking for a solution for this problem. rhino mocks 3.6.1 and later solves this issue.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜