Как смоделировать IDbSet с помощью Rhino Mocks - PullRequest
4 голосов
/ 09 сентября 2011

Я не могу заставить это работать вообще. У меня есть этот код в моем тесте:

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, культура = нейтральная, PublicKeyToken = a621a9e7e5c32e69 'попытался неявно реализовать интерфейсный метод с более слабыми ограничениями параметров типа

Есть идеи, что это может быть?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Вы столкнулись с известной проблемой, с которой Rhino.Mocks (версия 3.6.0.0) связана с общими ограничениями методов.

Метод «Создать»:

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

не может быть сгенерирован правильно из-за ограничений where TDerivedEntity : class, TEntity.

Более подробная информация об ошибке приведена здесь: Не удается заставить RhinoMocks создать макет, который следует общим правилам ограничения типов

К сожалению, похоже, что нам придется ждать следующей версии Rhino.Mocks для решения этой проблемы.

2 голосов
/ 20 января 2013

Для тех, кто все еще ищет решение этой проблемы. Rhino издевается над 3.6.1 и позже решает эту проблему.

...