Свойство Mocking Func класса - PullRequest
       18

Свойство Mocking Func класса

2 голосов
/ 03 августа 2010

один из моего класса репозитория (скажем, PersonRepo) имеет делегат в качестве своего свойства что-то вроде этого

private readonly Func<INameRepo> _nameRepo;

, и кроме этого он наследуется классом, который сам ожидает еще один объект (скажем, сеанс).

Таким образом, когда я запускаю это в своем тесте, я делаю что-то вроде

var funcNameRepo=autoMock.Mock<Func<INameRepo>>();
_personRepo= new PersonRepo(session,funcNameRepo.Object);

, но когда я запускаю этот тест, я получаю следующую ошибку:

Unable to cast object of type 'System.Func`1[Repositories.Interfaces.INameRepo]' to type Moq.IMocked`1[System.Func`1[Repositories.Interfaces.INameRepo]]'.

что ты думаешь я тут делаю не такПомогите мне, пожалуйста.

1 Ответ

3 голосов
/ 04 августа 2010

Зачем издеваться над Func<INameRepo>?Если вы хотите смоделировать INameRepo, создайте макет для INameRepo и передайте его своему PersonRepo через лямбду (это будет Func<INameRepo>):

var nameRepo = autoMock.Mock<INameRepo>();
_personRepo = new PersonRepo(session, () => nameRepo.Object);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...