Буду признателен за помощь в решении следующей проблемы.
Когда я запускаю функцию огурца (используя капибару), используя
rake cucumber:wip
, я получаю следующую ошибку: (т.е. объект ответапо какой-то причине не определено)
Then I should be able to see 1 announcement # features/step_definitions/view_announcements_steps.rb:8
undefined method `has_selector?' for nil:NilClass (NoMethodError)
./features/step_definitions/view_announcements_steps.rb:10:in `/^I should be able to see (\d+) announcement$/'
features/view_announcements.feature:13:in `Then I should be able to see 1 announcement'
У меня есть следующий файл функций огурца:
@wip
Feature: User views announcements
As a user
I want to be able to view announcements
So that I am up-to-date with the latest news
Background:
Given there is 1 announcement
Scenario: I am not logged in
Given I am not logged in
When I go to main
Then I should be able to see 1 announcement
Scenario: I am logged in
Given I am logged in as "test/password"
When I go to main
Then I should be able to see 1 announcement
и определения шагов:
Given /^there is|are (\d+) announcement$/ do |arg1|
arg1.to_i.times do
Announcement.create!({:title => "Test Announcement",
:body => "This is a test"})
end
end
Then /^I should be able to see (\d+) announcement$/ do |arg1|
response.should have_selector("div#announcement", :count => arg1)
end
When /^(?:|I )go to (.+)$/ do |page_name|
visit path_to(page_name)
end
Given /^I am not logged in$/ do
visit('/users/sign_out')
end
Given /^user "([^\/]*)\/([^\"]*)" exists$/ do |username, password|
User.new(:username => username,
:password => password,
:password_confirmation => password).save!
end
Given /^I am logged in as "([^\/]*)([^\"]*)"$/ do |username, password|
Given %{user "#{username}/#{password}" exists}
visit('/users/sign_in')#And %{I go to sign_in}
And %{I fill in "user_password" with "#{password}"}
And %{I press "Sign in"}
end