通过某些监视工具(例如 Monit)通过心跳消息来监视应用程序是一种常见的设置。如果应用程序正在运行并且一切正常,它会返回“我还活着”消息,如果数据库失败或 Web 服务器挂起,它不会返回任何内容或返回内部服务器错误(HTTP 状态代码 500)页面。你怎么模拟数据库故障在 Ruby on Rails 中测试此行为?如果可以在测试中出于测试目的启用/禁用此功能,那就太好了(Test::Unit
or RSpec
)本身。
看起来好像可以用ActiveRecord::Base.remove_connection
模拟数据库故障。使用 RSpec 这看起来像:
describe "GET running" do
it "renders a 500 if crashed" do
ActiveRecord::Base.remove_connection
get :running
response.response_code.should == 500
ActiveRecord::Base.establish_connection
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)