объект сеанса в интеграционном тесте rspec - PullRequest
8 голосов
/ 04 января 2012

Я использую rspec и капибару для интеграционного тестирования.

Есть ли способ сделать объекты сеанса в спецификации запроса?

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

Проблема в том, что я не могу создать объект сеанса в спецификации запроса. Вот пример вида:

<% if session[:role] == "Role" %>
---content---
<% else %>
--content--
<% end %>

И внутри моего запроса спец.

session[:role] = "Role"
visit my_path

Но выдает ошибку "неопределенный метод` session 'для nil: NilClass ".

Я также попытался изучить создание сессионных объектов капибары. Но ничего не смог найти.

Есть ли какое-нибудь решение для этого? Я не могу найти ничего, связанного с этим, кажется, что это невозможно. Небольшая помощь действительно ценится.

1 Ответ

3 голосов
/ 04 января 2012

То, как вы должны делать спецификации запроса, это посещать любой URL, который пользователь обычно должен посещать, чтобы установить эту переменную сеанса.

Я не знаю другого способа, кроме, возможно, установки cookie-файлов сессии вручную. Capybara.current_session.driver.browser.set_cookie давайте сделаем это, но вам нужно будет создать значение cookie вручную.

...