在Rails教程的5.3节(布局链接)中,我们为联系页面添加了一些测试:
describe "Contact page" do
it "should have the content 'Contact'" do
visit '/static_pages/contact'
expect(page).to have_content('Contact')
end
it "should have the title 'Contact'" do
visit '/static_pages/contact'
expect(page).to have_title("Ruby on Rails Tutorial Sample App | Contact")
end
end
之后我们在页脚代码中注释掉Contact链接:
<li><%#= link_to "Contact", '#' %></li>
根据文本,“为确保清单5.17中的两个测试都失败,我们需要注释掉页脚中的”联系人“链接,”但这对我来说没有意义。没有测试Contact链接,只测试Contact页面有有效的标题和内容。如果正确定义了联系页面,则测试仍应通过页脚中是否有链接。
或者我在这里遗漏了什么?它表现得像我期望的那样,但我不想继续并错过我应该理解的东西。
由于
答案 0 :(得分:1)
如果我们不注释掉链接,那么在我们创建联系页面之前,第一个测试将会通过。那是因为RSpec会在页面的任何地方搜索“联系人”这个词(这就是'have_content'的工作原理),所以它会在页脚中找到它,这意味着第一次测试将通过我们的通用页脚,不是谢谢我们实际创建一个联系页面。