我一直试图找到一种方法来使用Capybara测试这种端到端,但我似乎无法找到暂时禁用应用服务器或将无头浏览器切换到离线模式的任何方法. FWIW我用Poltergeist作为驱动程序.
有没有人知道如何测试它? (我可以使用sinon测试JavaScript应用程序来伪造服务器消失,但我希望能够使用无头浏览器端到端测试它,如果可能的话).
解决方法 我的团队已经将Rack应用程序删除,以模拟来自服务器的错误.它运行良好(在firefox中).以下是代码中的一些相关摘录:class noresponseRack attr_reader :requests def initialize disconnected_mode @disconnected_mode = disconnected_mode @requests = [] @sleePing_threads = [] end def call(env) @requests.push(env) case @disconnected_mode when :elb_pool_empty @sleePing_threads << Thread.current sleep 65 @sleePing_threads.delete Thread.current [504,{},['']] when :server_maintenance [200,['status_message=Atlas is down for maintenance.']] else [999,[""]] end end def wakeup_sleePing_threads @sleePing_threads.each &:wakeup @sleePing_threads.clear endenddef go_disconnected_with_proxy disconnected_mode=:server_error if $proxy_server_disconnected puts 'going disconnected' $current_proxy = noresponseRack.new disconnected_mode rack_mapPings.unshift([nil,"",/^(.*)/n,$current_proxy]) $proxy_server_disconnected = false endenddef rack_app Capybara::current_session.driver.appenddef rack_mapPings rack_app.instance_variable_get(:@mapPing)end总结
以上是内存溢出为你收集整理的ruby – 在Capybara中模拟网络故障/离线模式?全部内容,希望文章能够帮你解决ruby – 在Capybara中模拟网络故障/离线模式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)