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





Кажется, работает наиболее очевидное решение:
@controller.expects(:render)
Я мог бы поклясться, что попробовал это прошлой ночью, но безуспешно. Но сегодня утром это действует как шарм. Я, должно быть, не заметил опечатку.
Не похоже, что здесь нужна заглушка. Если вы хотите убедиться, что данный шаблон отображается, используйте assert_template и / или assert_response. Вы также можете подтвердить состояние объекта ответа вручную или с помощью таких помощников, как assert_select.
Я понимаю вашу точку зрения, но то, что я пытался сделать, было немного другим. По сути, я просто хотел заглушить несколько методов в своей модели и протестировать, чтобы убедиться, что контроллер вызвал их правильно. Избегая рендеринга, я действительно стараюсь не заглушать каждый метод, который использовали мои представления / помощники.
Понимаю, в этом случае может потребоваться насмешка, но похоже, что вы уже ответили на свой вопрос :)
Я не уверен. Похоже, мне потребуется изменить код в моем контроллере. Я просто хочу заменить метод рендеринга на макет во время выполнения этого теста.