ruby – 在Capybara中模拟网络故障离线模式?

ruby – 在Capybara中模拟网络故障离线模式?,第1张

概述我的应用程序中有一些 JavaScript可以检测网络连接何时消失,并暂时将数据缓存在本地存储中,以便在重新建立连接时与服务器同步. 我一直试图找到一种方法来使用Capybara测试这种端到端,但我似乎无法找到暂时禁用应用服务器或将无头浏览器切换到离线模式的任何方法. FWIW我用Poltergeist作为驱动程序. 有没有人知道如何测试它? (我可以使用sinon测试JavaScript应用程序 我的应用程序中有一些 JavaScript可以检测网络连接何时消失,并暂时将数据缓存在本地存储中,以便在重新建立连接时与服务器同步.

我一直试图找到一种方法来使用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中模拟网络故障/离线模式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1269849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存