Может ли MOQ выкачать класс

является ли законным для 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

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

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