测试水豚访问页面的最佳实践

时间:2014-04-14 09:34:48

标签: ruby-on-rails capybara rspec-rails

所以我想知道最好的方法是使用水豚来测试一个页面实际访问

describe "Pages" do
  subject { page }
  describe "Home page" do
    it "should have the title 'My Home Page'" do
      visit root_path
      expect(page).to have_title('My Home Page')      
    end
  end
end

现在看来,测试这个的标准方法是比较页面的标题(如上所述)。这看起来并不强大,就像页面标题发生变化一样,它会破坏任何引用它的测试。

这是标准做法吗?还是有另一种方法来测试它。

谢谢, 马特

1 个答案:

答案 0 :(得分:2)

我不认为您提供的示例是测试访问页面的标准方法。这是查看页面标题是否与预期匹配的标准方法= P

如果你想对capybara中的路径做出断言,更可靠的方法是使用current_path。因此,您可以按如下方式重写您的示例:

describe "Pages" do
  describe "Home page" do
    it "will visit root_path" do
      visit root_path
      expect(current_path).to eql root_path
    end
  end
end

请注意,这不是一个非常有价值的测试。我们都知道水豚经过了很好的测试,如果我们告诉它,它会访问root_path。无论如何,如果你想进行理智检查或其他什么,这是正确的方法。

我希望它有所帮助!