【问题标题】:ActionCable not connecting during capybara-webkit feature spec在 capybara-webkit 功能规范期间 ActionCable 未连接
【发布时间】:2017-01-26 14:09:54
【问题描述】:

我在使用 Capybara-webkit 的带有功能规格的 actioncable 时遇到问题。 Actioncable 在我的开发服务器上运行良好,但在测试 javascript 时似乎无法连接。

这是在我的功能规范期间运行的 javascript 控制台的输出

WebSocket connection to 'ws://127.0.0.1:32789/cable' failed: Unexpected response code: 200

这是我当时test.log的输出

GET     "/cable"  for 127.0.0.1  at 2017-01-26 13:33:23 +0000
GET     "/cable/"  for 127.0.0.1  at 2017-01-26 13:33:23 +0000
Successfully upgraded to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: Upgrade, HTTP_UPGRADE: websocket)

这很奇怪,因为根据日志它似乎连接正常,但是 javascript 抛出错误并停止执行......另外,200 是如何出现错误代码的? 200 状态码不总是意味着OK 吗?

提前致谢

【问题讨论】:

  • WebSocket 服务器应该以101 Switching Protocols 响应。

标签: ruby-on-rails websocket capybara capybara-webkit actioncable


【解决方案1】:

Capybara 使用的默认服务器是 :webrick,它不支持测试 ActionCable(它会在 Capybara 3.0 发布时更改)。要将其切换为支持使用 ActionCable 进行测试的 puma,您可以将 Capybara.server = :puma 指定为 Capybara 配置的一部分。

【讨论】:

  • 确保需要 'puma',并将其添加到您的 gems 文件或 gemspec
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多