Подтвердить что ты не робот

Rhino Mocks - Разница между GenerateStub <T> и GenerateMock <T>

Может ли кто-нибудь из экспертов Rhino объяснить мне, предоставив подходящий пример разницы между указанными выше методами класса MockRepository (инфраструктура Rhino Mocks).

Где использовать метод Stub over Mock или иначе?

4b9b3361

Ответ 1

вы должны использовать макет, когда будете проверять, что что-то произошло на объекте, как вызван метод. Вы должны использовать заглушку, когда хотите, чтобы объект был вовлечен в тест, чтобы вернуть значение, но это не то, что вы тестируете. Штук, который не имеет ожидаемого исполнения, никогда не сможет пропустить тест.

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

Хотя не пример Rhino Мартин Фаулер имеет описание разницы

Также этот вопрос может быть полезен, как может этот