Mock-объект, реализующий два интерфейса (Rhino Mock) - CodeHelper

Mock-объект, реализующий два интерфейса (Rhino Mock)

1

Можно ли в Rhino Mocks создать заглушку, реализующую несколько интерфейсов. Все стандартные методы принимают в качестве параметров только один класс/интерфейс, который будет реализован:

// Заглушка, реализующая один интерфейс
var mock = _mockRepository.DynamicMock(typeof(ISomeInterface));

Лучший ответ:

1

Да, можно. Нужно использовать те же методы, что и для обычных заглушек, только с окончанием MultiMock:

MockRepository.CreateMultiMock(...);
MockRepository.DynamicMultiMock(...);
MockRepository.PartialMultiMock(...);
MockRepository.StrictMultiMock(...);

И это является одной из фишек Rhino Mocks, потому что многие другие фреймворки такой возможности не предоставляют. Однако, в сообществе ведутся споры о целесообразности мокирования нескольких интерфейсов. В частности, говорится о том, что интерпретация одного и того же объекта в разных формах вредит читабельности теста, усложняет его и тд. Ведь если тест интерпретирует один объект как две разные сущности, значит он выполняет (как минимум) две операции над этим объектом, а отсюда следует что тест может быть разбит на 2 теста.

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.