Ответ 1
stub_model
Метод
stub_model
генерирует экземпляр модели Active Model.Хотя вы можете использовать
stub_model
в любом примере (модель, представление, контроллер, помощник), это особенно полезно в примерах, которые по своей природе более основаны на состоянии, чем на основе взаимодействия.
mock_model
Метод
mock_model
генерирует test double, который действует как активная модель модель. Это отличается от методаstub_model
, который генерирует экземпляр реального класса ActiveModel.Преимущество
mock_model
overstub_model
заключается в том, что он является истинным двойником, поэтому примеры не зависят от поведения (или неправильного поведения) или даже существования какого-либо другого кода. Если вы работаете над спецификацией контроллера и вам нужна модель, которая не существует, вы можете передатьmock_model
строку, и сгенерированный объект будет действовать так, как если бы это был экземпляр класса, названного этой строкой.
rspec docs: stub_model и mock_model