Во-первых, отключение карты в маршрутах Rails 3 не рекомендуется, вероятно, у вас должно быть что-то вроде этого.создайте пользователя в тестовой базе данных, а затем перейдите на страницу входа и войдите в систему, чтобы в приложении все было правильно настроено.
Given /^I have one user "([^\"]*)" with email "([^\"]*)" and password "([^\"]*)"$/ do |username,email, password|
@user = User.new(:email => email,
:username=>username,
:password => password,
:password_confirmation => password)
@user.save!
end
Given /^I am an authenticated user$/ do
name = 'exmample'
email = 'example@example.com'
password = 'secret!'
Given %{I have one user "#{name}" with email "#{email}" and password "#{password}"}
And %{I go to the user login page}
And %{I fill in "user_username" with "#{name}"}
And %{I fill in "user_password" with "#{password}"}
And %{I press "Sign in"}
end
Я использую его следующим образом:
Feature:
In order to reboot my crappy/POS equipment without bothering the awesome Noc Monkeys
I would like to login to a webpage and see the status of and control the outlets on my equipment
Background: Valid and authenticated user with at least one outlet to control
Given I am an authenticated user
@ok
Scenario: Viewing All outlets
Given I am able to control an outlet with index "1"
And I am on the home page
Then I should see "server_1"
Кроме того, обычно я не вызываю рендер внутри шага огурца.Поскольку вы работаете с имитируемым браузером (при условии вебрат / капибара), вы бы visit path_to(page_name)
.