Capybara无法点击链接,响应包含显示链接

时间:2012-09-24 01:23:52

标签: ruby-on-rails ruby rspec capybara

我正在尝试编写一个单击链接的测试但是当我运行测试时,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

为什么水豚不能点击链接的任何想法?

1 个答案:

答案 0 :(得分:1)

问题是,当您使用visit时,您正在使用get

开关:

get mwod_posts_path

为:

visit mwod_posts_path

这会让您点击click_link等链接。要解析回复,您需要更改:

response.status.should be(200)

为:

page.response_code.should be(200)

我实际上并未确认这是有效的,但discussion elsewhere似乎表明您可以从page以这种方式检查回复代码。虽然,正如在讨论中所指出的那样,这不是你应该在集成测试中真正做的事情。

有关getvisit之间区别的更多信息,请参阅this answerthis post。 (这是一个常见的混淆点。)。