2

Rails チュートリアルのセクション 5.3 (レイアウト リンク) では、Contact ページのテストをいくつか追加します。

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 ページが適切に定義されていれば、フッターにリンクがあるかどうかにかかわらず、テストはパスするはずです。

それとも、ここで何か不足していますか? 期待どおりに動作しますが、そのまま続行して、理解しておくべきことを見逃したくはありません。

ありがとう

4

1 に答える 1

1

リンクをコメントアウトしない場合、連絡先ページを作成する前の最初のテストに合格します。これは、RSpec がページの任意の場所で「Contact」という単語を検索するためです (これが「have_content」の仕組みです)。つまり、最初のテストは、私たちのおかげではなく、一般的なフッターのおかげでパスします。実際に連絡先ページを作成します。

于 2013-08-06T04:48:23.983 に答える