Подобная проблема произошла со мной, когда я делал пример задачи. Капибара не выбирала текст, который был там. При этом Капибара не выбирает ссылку для объекта, который там находится. Я что-то упустил?
Сообщение об ошибке:
When I click the link "Why is earth round?" # features/step_definitions/queston_steps.rb:6
no link with title, id or text 'Why is earth round?' found (Capybara::ElementNotFound)
(eval):2:in `click_link'
./features/step_definitions/queston_steps.rb:7:in `/^I click the link "([^"]*)"$/'
features/viewing_questions.feature:9:in `When I click the link "Why is earth round?"'
Это мои тестовые камни:
group :test, :development do
gem 'rspec-rails'
end
group :test do
gem 'cucumber-rails'
gem 'capybara'
gem 'database_cleaner'
gem 'factory_girl'
gem 'factory_girl_rails'
end
Это мои коды.
Сценарий:
Scenario: Listing questions
Given I am on the home page
And there is a question "Why is earth round?"
When I click the link "Why is earth round?"
Then I should be on the page for "Why is earth round?"
And I should see "Question: Why is earth round?"
Заводское определение:
Factory.define(:queston) do |q|
q.question "Why is earth round?"
end
Определение шага:
Given /^there is a question "([^"]*)"$/ do |question|
FactoryGirl.create(:queston, :question => question)
#Queston.create(:question => question)
end
When /^I click the link "([^"]*)"$/ do |link|
click_link(link)
end
Вид:
<ul>
<% @questons.each do |queston| %>
<li><%= link_to queston.question, queston %></li>
<% end %>
</ul>
Queston - это класс модели, а question - его атрибут.