我正在尝试编写一个单击链接的测试但是当我运行测试时,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
为什么水豚不能点击链接的任何想法?
答案 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
以这种方式检查回复代码。虽然,正如在讨论中所指出的那样,这不是你应该在集成测试中真正做的事情。
有关get
和visit
之间区别的更多信息,请参阅this answer和this post。 (这是一个常见的混淆点。)。