Проверка наличия навигационной панели в Rspec - PullRequest
0 голосов
/ 16 марта 2012

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

Как мне пройти тест для этого?

 <%= link_to "App_Name", root_path, :class => 'brand' %>
 <ul class="nav">
<% if user_signed_in? %>
<li>
<%= link_to('Logout', destroy_user_session_path, :method=>'delete') %>        
</li>
<% else %>
<li>
<%= link_to('Login', new_user_session_path)  %>  
</li>
<% end %>
<% if user_signed_in? %>
<li>
<%= link_to('Edit account', edit_user_registration_path) %>
</li>
<% else %>
<li>
<%= link_to('Sign up', new_user_registration_path)  %>
</li>
<% end %> 
</ul>

Ответы [ 2 ]

0 голосов
/ 16 марта 2012

Вы должны использовать Capybara или webrat , если хотите, вместе со спецификациями запроса RSpec для тестирования элементов страницы HTML.

С Capybara, который я предпочитаю, вы бы написали спецификацию запроса, например:

describe "Navigation Requests Spec" do

  describe "Navigation should be available" do
    it "should show the navigation on the home page" do
      visit root_path
      page.should have_link('Logout')
      page.should have_link('Login')
      page.should have_link('Sign up')
    end
  end
end

Очевидно, что вы затем добавляете тесты для зарегистрированных пользователей и проверяете, что они могут видеть. В этом случае я собрал все утверждения в одном тесте, чтобы укорочить ответ. Возможно, вы захотите разбить их на отдельный тест, который обычно рекомендуется в качестве подхода RSpec, хотя на самом деле это ваше личное предпочтение ..

Страница капибары стоит того, чтобы ее проверить, она обладает значительными возможностями для тестирования всех видов HTML на странице. Стоит также проверить подробности тестирования запросов RSpec.

0 голосов
/ 16 марта 2012

Я помню один похожий вопрос о RSpec с вашим.Большинство вещей просты, это не исключение.Просто проверьте сгенерированный HTML-код или «что вы видите» и скажите RSpec, чтобы он проверял наличие этого элемента (ов).Надеюсь, это поможет,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...