2011-02-04 3 views
0

Я был бы признателен за помощь в решении следующей проблемы.undefined метод `has_selector? ' для nil: NilClass (NoMethodError) огурец (capybara) step

Когда я запускаю мой огурец (с помощью водосвинку) функцию с помощью

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 

ответ

0

Оказалось, что путь был неправильным в функциях/support/paths.rb.