2012-09-24 48 views
2

我试图写一个测试,点击一个链接,但是当我运行测试,水豚返回以下错误链接:水豚不能点击链接,响应包含显示

"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

问题是,当您应该使用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。 (这是一个常见的混乱点)。

+0

谢谢,我读了更多。在正常的集成测试中获得PATH和response.status。水豚使用访问和page.response_code。 Response.status没有通过水豚填充,所以这是行不通的。再次感谢。 – CAB