我认为这取决于你为什么要"测试"断链接.
场景1)确保用户输入的URL正确可能使用如下方法:
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
Run Code Online (Sandbox Code Playgroud)
然后,您可以在Rspec测试中使用它:
active_link?('http://example.com').should be
Run Code Online (Sandbox Code Playgroud)
场景2)您只是想确保您网站上的所有链接都有效:
如果是这种情况,您可以尝试使用Unix'wget'命令:
wget --spider -r -l 1 --header='User-Agent: Mozilla/5.0' http://example.com 2>&1 | grep -B 2 '404'
Run Code Online (Sandbox Code Playgroud)
在场景2中,它会将所有404转储到终端屏幕.将它放入rake命令是一件相对简单的事情; Jason Seifer有一篇很棒的博客文章(http://jasonseifer.com/2010/04/06/rake-tutorial)
好吧,如果您编写正确的集成测试(例如使用 Cucumber 或其他测试),您应该接触整个前端界面。例如点击链接、填写表格等。
当您的应用程序中存在死链接时,这组测试会立即向您发出警告。
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |