Интеграционное тестирование Rails 4 не может найти ссылку

Я использую rails 4 и capybara 2.1.0 и rspec 2.0 для разработки модели регистрации пользователей.

вот содержание моей спецификации

visit register_path  
fill_in 'user[full_name]', with: "xxxx"
click_button 'Register'
expect(page).to find_link("Send hosting request")

в форме регистрации после нажатия кнопки регистрации я создаю пользователя и перенаправляю его на эту страницу, скажем, user/1 в шаблоне показа пользователя

вот шаблон шоу

  <div>
  <strong>Full Name</strong>
  <%= @user.own_profile.full_name %>
  </div>
  <%= link_to 'Send hosting request', root_path %>

но когда я запускаю тест, я получаю сообщение о том, что не могу найти ссылку

1) Register Page Create User
   Failure/Error: find_link("Send hosting request")
   Capybara::ElementNotFound:
    Unable to find link "Send hosting request"
 # ./spec/integration/register_page_spec.rb:22:in `block (2 levels) in <top (required)>'
 # -e:1:in `<main>'

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

что я могу сделать сейчас

когда я использую page.has_content?('Отправить запрос на хостинг') он возвращает true


person Dinkaran Ilango    schedule 23.10.2013    source источник


Ответы (1)


Пытаться :

expect(page).to have_link("Send hosting request")

Он должен работать...

Я нашел эту ссылку полезной http://rubydoc.info/github/jnicklas/capybara/Capybara/RSpecMatchers

Иметь качели

person phron    schedule 23.10.2013
comment
Спасибо за ваш ответ, когда я пытаюсь, я получаю другую ошибку следующим образом Failure/Error: expect(page).to have_link('Send hosting request') expected #has_link?("Send hosting request") to return true, got false - person Dinkaran Ilango; 24.10.2013