2

在 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 中的两个测试都失败,我们需要注释掉页脚中的“联系”链接”,但这对我来说没有意义。没有测试联系人链接,只测试联系人页面具有有效的标题和内容。如果正确定义了联系页面,则无论页脚中是否存在链接,测试仍应通过。

或者我在这里错过了什么?它的行为符合我的预期,但我不想继续错过我应该理解的东西。

谢谢

4

1 回答 1

1

如果我们不注释掉链接,第一个测试将在我们创建联系页面之前通过。这是因为 RSpec 会在页面的任何位置搜索“Contact”这个词(这就是“have_content”的工作原理),所以它会在页脚中找到它,这意味着第一个测试将通过我们的通用页脚,而不是我们实际创建一个联系人页面。

于 2013-08-06T04:48:23.983 回答