2013-12-05 2 views
0

Я в настоящее время тестирования с MiniTest водосвинкой и я получил ошибку на одном из моих тестовтестирования с MiniTest Капибары рельсами ссылки не найдено

Unable to find link or button "Edit Profile" 

вот мой тест

require "test_helper" 

feature "as a student I want a working user system so grade = good" do 
    scenario "users can update profile" do 
    dude_sign_up 
    dude_log_in 
    click_on "Edit Profile" 
    click_on "Update" 
    page.must_have_content "Profile was successfully updated" 
    end 
end 

два помощника методы испытаний на помощнике

def dude_sign_up 
    visit new_user_path 
    fill_in "Name", with: 'thedude' 
    fill_in "Email", with: "[email protected]" 
    fill_in "Password", with: 'password' 
    fill_in "Password confirmation", with: 'password' 
    click_on "Sign Up" 
end 

def dude_log_in 
    visit posts_path 
    fill_in "Email", with: "[email protected]" 
    fill_in "Password", with: 'password' 
    click_on "Log In" 
end 

и если его нужно мое вот мой _nav, что я оказал в application.html.er b между и выше доходности

<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> 
    <div class="container"> 
    <ul class="nav navbar-nav navbar-right"> 
     <li><%= link_to 'Home', root_path %></li> 
     <li><%= link_to 'About', about_path %></li> 
     <li><%= link_to "The Blog", posts_path %></li> 
     <li class="dropdown"> 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown">Registration<b class="caret"></b></a> 
     <ul class="dropdown-menu"> 
      <% if current_user %> 
      <td><%= link_to 'Edit Profile', edit_user_path(current_user) %></td> 
      <li><%= link_to "Users", users_path %></li> 
      <li><%= link_to "Log out", logout_path %></li> 
      <% else %> 
      <li><%= link_to 'Sign Up', signup_path %></a></li> 
      <li><%= link_to 'Log In', login_path %></li> 
      <% end %> 
     </ul> 
     </li> 
    </ul> 
    </div> 
</nav> 

это прекрасно работает, если я просто нажму на все и прохожу через него. Я не использовал светильники, это причина моей проблемы?

+0

Вы уверены, что пользователь успешно вошел в систему? –

+0

ya, потому что я провела еще один тест, чтобы узнать, появилось ли вошедшее в систему флеш-сообщение, и я понял, что тест прошел –

ответ

1

Когда Capybara ищет элемент, он будет рассматривать только элементы, которые видны пользователю.

Учитывая название на вашей странице, я предполагаю, что «Редактировать профиль» не отображается, когда пользователь впервые регистрируется. Чтобы увидеть эту ссылку, пользователю, вероятно, нужно сначала щелкнуть ссылку «Регистрация».

Capybara должен выполнять тот же рабочий процесс. Попробуйте добавить click_on "Registration":

scenario "users can update profile" do 
    dude_sign_up 
    dude_log_in 
    click_on "Registration" 
    click_on "Edit Profile" 
    click_on "Update" 
    page.must_have_content "Profile was successfully updated" 
end 
Смежные вопросы