Ruby on rails 测试Rspec中是否存在导航栏

Ruby on rails 测试Rspec中是否存在导航栏,ruby-on-rails,rspec,Ruby On Rails,Rspec,我试图找到一种方法来测试导航栏的存在。导航栏很可能是以部分方式创建的,然后呈现到所需的每个单独页面上 我该怎么做这个测试呢 <%= link_to "App_Name", root_path, :class => 'brand' %> <ul class="nav"> <% if user_signed_in? %> <li> <%= link_to('Logout', destroy_user_session_path, :met

我试图找到一种方法来测试导航栏的存在。导航栏很可能是以部分方式创建的,然后呈现到所需的每个单独页面上

我该怎么做这个测试呢

 <%= 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>
“品牌”%>
  • “删除”)%%>

我记得有一个关于RSpec的问题与您的问题类似。大多数事情都很简单,这也不例外。只需检查生成的HTML代码,或“what you see”,并告诉RSpec检查是否存在此元素。希望这能有所帮助,

我记得有一个关于RSpec的类似问题问过你。大多数事情都很简单,这也不例外。只需检查生成的HTML代码,或“what you see”,并告诉RSpec检查是否存在此元素。希望对您有所帮助,

您应该使用RSpec请求规范来测试HTML页面元素,或者如果您愿意的话,可以结合使用RSpec请求规范

使用我喜欢的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方法,尽管这确实是您个人的偏好


capybara页面非常值得一看,它具有在页面上测试各种html的重要功能。同样值得检查RSpec请求测试的详细信息。

您应该使用RSpec请求规范,或者如果您愿意,可以结合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方法,尽管这确实是您个人的偏好


capybara页面非常值得一看,它具有在页面上测试各种html的重要功能。同样值得查看RSpec请求测试的详细信息。

您是否可以发布一些示例HTML来演示导航栏的结构及其在页面上的位置?您是否可以发布一些示例HTML来演示导航栏的结构及其在页面上的位置?