在capybara-webkit功能规范期间,ActionCable无法连接

时间:2017-01-26 14:09:55

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

使用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

提前致谢

1 个答案:

答案 0 :(得分:10)

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