Как вы используете Moq, чтобы издеваться над простым интерфейсом? - PullRequest
30 голосов
/ 12 апреля 2011

Хорошо, у меня есть класс бизнес-логики, подобный следующему:

Примечание. Для контекста, Vendor Briefs - это простые сущности, которые описывают «загрузку» для документа PDF.Я делаю свои первые шаги в модульном тестировании и изучаю Moq.Я не хочу, чтобы для этого был написан целый класс модульных тестов (если, конечно, вам это не нравится: P), но подойдет простой пример.Я предполагаю, что мне нужно «mock» IVendorBriefRepository, чтобы я мог передать его в конструктор при сборке моего контроллера (не путать с контроллерами mvc), но я не уверен, как это сделать.Пример, использующий мой собственный код, действительно поможет мне начать.

Заранее спасибо!

1 Ответ

37 голосов
/ 12 апреля 2011

Примерно так будет проверяться, например, DeleteVendorBrief.

Mock<IVendorBriefRepository> mock = new Mock<IVendorBriefRepository>();

VendorBriefController controller = new VendorBriefController(mock.Object);

VendorBrief brief = new VendorBrief();

controller.DeleteVendorBrief(brief);

mock.Verify(f=>f.DeleteVendorBrief(brief));
mock.Verify(f=>f.SaveChanges());
...