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

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

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


person chugh97    schedule 29.03.2010    source источник


Ответы (1)


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

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

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

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

person Sam Holder    schedule 29.03.2010