测试rails应用程序中的断开链接

时间:2011-03-23 10:19:36

标签: ruby-on-rails

我有一个现有的rails应用程序,我想测试损坏的链接。我应该使用集成测试或Rspec进行哪些测试?不熟悉BDD。

提前致谢!!

2 个答案:

答案 0 :(得分:5)

我认为这取决于你为什么要“测试”断链接。

场景1)确保用户输入的网址正确可能会使用如下方法:

def active_link?(url)
  uri = URI.parse(url)
  response = nil
  Net::HTTP.start(uri.host, uri.port) { |http|
    response = http.head(uri.path.size > 0 ? uri.path : "/")
  }  
  return response.code == "200"
end

然后您可以在Rspec测试中使用它:

active_link?('http://example.com').should be

场景2)您只是想确保您网站上的所有链接都有效:

如果是这种情况,您可以尝试使用Unix'wget'命令:

wget --spider -r -l 1 --header='User-Agent: Mozilla/5.0' http://example.com 2>&1 | grep -B 2 '404'

使用方案2,它会将所有404转储到终端屏幕。将它放入rake命令是一件相对简单的事情; Jason Seifer有一篇很棒的博客文章(http://jasonseifer.com/2010/04/06/rake-tutorial)

答案 1 :(得分:0)

好吧,如果您编写适当的集成测试(例如使用Cucumber或其他),您应该触摸整个前端界面。例如。点击链接,填写表格等。

当您的应用中存在死链接时,这组测试会立即发出警告。