Может ли MOQ макетировать класс - PullRequest
13 голосов
/ 20 сентября 2010

допустимо ли для MOQ класс, который не наследует интерфейс, подобный так:

var mockIActionService = new Mock<IActionService>();
var mockValidAgeRule = new Mock<ValidAgeRule>(mockIActionService.Object);

Я внедряю IService в ValidAgeRule, который является простым классом с одним методом, называемым «Excute». У меня вопрос, как мне убедиться, что звонили. Всякий раз, когда я пытаюсь:

 mockValidAgeRule.Verify(x => x.Execute(app)); //Where App is a valid object

Кто-нибудь знает, как это сделать?

1 Ответ

20 голосов
/ 20 сентября 2010

Полагаю, вам нужно сделать метод Execute виртуальным.

Насколько я понимаю, Moq в этом случае создает подкласс вашего класса и должен переопределить ваш метод, чтобы отслеживать, был ли он вызван.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...