Я столкнулся с проблемой при тестировании своих контроллеров с помощью RSpec - вызов response.body всегда возвращает пустую строку. В браузере все отображается правильно, и тесты функций огурца, похоже, все исправляют, но RSpec каждый раз дает сбой.
Другие ожидания в отношении объекта ответа, например, response.should render_template('index')
проходят без проблем.
Кто-нибудь из вас сталкивался с этой проблемой раньше? Может быть, ответ html можно получить каким-то другим способом?
Что касается версий, то Rails 2.1.0, RSpec 1.2.7.
источник
RSpec 2+: если вы хотите проверить сквозной URL-адрес тела ответа, используйте спецификацию запроса вместо спецификации контроллера .
источник
Когда я работал с похожей проблемой (которая привела меня к этому вопросу), мне пришло в голову, что есть разные способы снять шкуру с одной и той же кошки. Другими словами, вместо проверки основного текста вы можете проверить содержимое флэш-памяти.
может быть эквивалентной проверкой:
Мне последний кажется более гибким, так как он будет работать в любом случае, но не во всех случаях подходит.
Привет,
Джон
источник
По умолчанию конфигурация RSpec-rails отключает рендеринг шаблонов для спецификаций контроллера.
Один из способов исправить это - убедиться, что
render_views
параметр включен в вашемrails_helper.rb
файле. Таким образом, вы даете ему возможность работать глобально во всех ваших тестах.Или используйте объявление render_views для отдельной группы:
Вы можете прочитать об этом здесь .
источник