2011-09-23 103 views
2

艺术家如何使用水豚/ rspec的

it "should display error if voting on own artwork", :js => true do 
    sign_in 
    visit "/upcoming" 
    click_link "like_post_1" 
    page.should have_content("Can't vote on your own artwork") 
end 

这是路过就好无法评价自己的作品来测试一个陈旧的链接点击(或链接我不能去)。

但是,我不能再点击like_post_1,因为我添加了一项功能来防止投票链接出现在您自己的作品旁边。

这是否意味着我不再需要测试此场景的覆盖范围,因为极少有人可以点击投票链接获取自己的作品?或者应该仍然有覆盖范围来测试ajax响应,因为它没有在其他地方进行测试,并且有可能在标签浏览器窗口中以某种方式存在一些陈旧的链接页面。如果是这样......如果我不能拨打click_link,我该如何测试?

我可以尝试创建一个POST请求以创建投票,但水豚不支持岗位,我无法测试Ajax响应这样...

还是有办法来模拟在水豚选项卡式浏览?

对此提出建议?

回答

0

您可以使用CSS display:none或visibility:隐藏自己的作品,而不是从DOM删除链接。您可能需要设置

Capybara.ignore_hidden_elements = false 

另一种方法是放弃Capybara并将它们放入控制器/型号规格中。对于极少数情况,控制器/型号规格可能是更好的选择,或者保护您的应用案例。

0

请试试这个:

使用睡眠功能。

睡眠10使用等待过程高达10秒..

it "should display error if voting on own artwork", :js => true do 
    sign_in 
    visit "/upcoming" 
    click_link "like_post_1" 
    sleep 10 
    page.should have_content("Can't vote on your own artwork") 
end