我有一个现有的rails应用程序,我想测试损坏的链接。我应该使用集成测试或Rspec进行哪些测试?不熟悉BDD。
提前致谢!!
答案 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或其他),您应该触摸整个前端界面。例如。点击链接,填写表格等。
当您的应用中存在死链接时,这组测试会立即发出警告。