2

リンクをクリックするテストを作成しようとしていますが、テストを実行すると、Capybaraは次のエラーを返します。

 "no link with title, id or text 'New Mwod post' found

そこで、「デバッガー」を配置して応答を出力しました。本体には次のものが含まれていました。

<a href=\"/mwod_posts/new\">New Mwod post</a>

テストには次のコードがあります。

describe "GET /mwod_posts/new" do
  it "creates a new mwod post" do
    FactoryGirl.create(:mwod_tag)
    get mwod_posts_path
    debugger
    response.status.should be(200)
    click_link "New Mwod post"
  end
end

カピバラがリンクをクリックできない理由はありますか?

4

1 に答える 1

1

問題は、を使用getする必要があるときに使用していることですvisit

スイッチ:

get mwod_posts_path

に:

visit mwod_posts_path

これにより、などのリンクをクリックできるようになりますclick_link。応答を解析するには、以下を変更する必要があります。

response.status.should be(200)

に:

page.response_code.should be(200)

これが機能することを実際に確認していませんが、他の場所での議論は、からこの方法で応答コードを確認できることを示しているようですpage。ただし、その説明で述べたように、これは統合テストで実際に行うべきことではありません。

詳細については、この回答この投稿getの違いをvisit参照してください。(これはよくある混乱のポイントです。)

于 2012-09-24T01:44:37.770 に答える