Использование соответствия Capybara в спецификации контроллера с ActionController :: TestResponse - PullRequest
3 голосов
/ 21 июля 2011

Я звоню render_views в своей спецификации контроллера rspec, чтобы я мог проверить содержимое ответа напрямую, а не использовать отдельные спецификации представления.

Конечно, представление отображается и возвращается в response.body.

Проблема в том, как на самом деле разобрать содержимое страницы выразительным способом.Я пытаюсь использовать сопоставители Capybara, такие как has_content, has_field и т. Д., Которые отлично работают в спецификациях запроса, но не работают с ActionController::TestResponse или со строкой, возвращенной из .body.

Где API rspec для анализа представления?

Какой смысл render_views, если я не могу их проверить?

1 Ответ

1 голос
/ 22 июля 2011

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

...