1

检查页面底部的编辑

我的老板有一个站点地图——它基本上只是每条路线作为一个链接,点击一个按钮,上面写着“有效?” 或“忽略”,它将在页面上标记为有效或忽略它。

他让我手动浏览并单击每个链接,测试该页面不是 500 或 404,如果不是,则将其标记为有效。

这对我来说似乎很愚蠢,因为它基本上只是面向用户的工作路线测试。

同时,我可以在 Rspec 中为所有这些写出路由规范,但我猜他想要一些文档,这些文档是在前端为他自己和用户发生的。

我在想一个有趣的方法来解决这个无聊的点击问题,那就是在编写规范的同时进行一些编程。让他高兴,也为可重复使用的应用程序增加了实际价值和测试。

有没有办法在规范中编写如下内容:

links = page.all('a.routing-links)
link.each do |link|
  link.click
  if page status != 404 || 500
    Link.find(id).update_attribute("verified", true)
  end 
end

我尝试将其放入我的规范中,但是当 link.click 遇到不正确的路线时,它会停止测试(这是有道理的,因为该路线已损坏,这是一个测试。

我想要的是能够接受该错误并使用它来更新我的模型的属性。

我会完全错了吗?有更好的想法或灵感吗?

谢谢

编辑

我同意发帖人的观点,他说这最好留给脚本或 rake 任务。

我对如何编写将转到页面、查找每个链接、记录其 status_code、然后查找和更新模型的脚本有点迷茫。有什么建议或提示吗?理想情况下,它将在应用程序中运行,以便我可以访问我的模型和控制器。

谢谢

4

1 回答 1

1

就个人而言,我实际上不会将其放入规范中,因为您实际上并不期望任何事情会失败。

相反,我会创建一个快速脚本,甚至 rake 任务来运行您所描述的链接。

话虽如此,这篇文章:http ://agileleague.com/2012/12/rails-3-2-custom-error-pages-the-exceptions_app-and-testing-with-capybara/详细介绍了如何绕过正常失败在这些情况下,即:

在你的config/environments/test.rb

config.consider_all_requests_local = false
config.action_dispatch.show_exceptions = true

尽管这会影响所有测试,但这很可能不是您想要的。

此外,您可能会在测试时立即发现一件小事 - 您需要在单击链接后重新访问列表页面,或者更确切地说依靠链接点击,您可以访问 href 而不是快一点。

links = page.all('a.routing-links')
link.each do |link|
  visit link[:href]
  if page.status != 404 || 500
    Link.find(id).update_attribute("verified", true)
  end 
end

我还没有测试过,所以不确定它是否会那样工作,但你应该能够理解这个想法。

于 2013-01-24T08:46:54.157 回答