Ruby on rails 在Rails 6中获取或发布ActionCable测试?
我正在使用JWT对我的用户进行身份验证 因此,当用户想要连接到ActionCable服务器时,它会执行以下操作:Ruby on rails 在Rails 6中获取或发布ActionCable测试?,ruby-on-rails,testing,actioncable,ruby-on-rails-6,Ruby On Rails,Testing,Actioncable,Ruby On Rails 6,我正在使用JWT对我的用户进行身份验证 因此,当用户想要连接到ActionCable服务器时,它会执行以下操作: 从REST端点获取JWT:POST/users/sign\U in 使用此jwt建立ws-to-ActionCable //建立连接 ws=newwebsocket(“ws://localhost:3000/WebSocket?token=“+jwt”) 我想测试这个连接,所以我使用Rails 6中的开箱即用: #测试/通道/应用程序(电缆/连接)测试.rb 需要“测试助手”
- 从REST端点获取JWT:POST/users/sign\U in
- 使用此jwt建立ws-to-ActionCable
//建立连接
ws=newwebsocket(“ws://localhost:3000/WebSocket?token=“+jwt”)
我想测试这个连接,所以我使用Rails 6中的开箱即用:
#测试/通道/应用程序(电缆/连接)测试.rb
需要“测试助手”
类ApplicationTable::ConnectionTest
但我有以下错误:
Error:
ApplicationCable::ConnectionTest#test_connects_with_jwt:
NoMethodError: undefined method `post' for #<ApplicationCable::ConnectionTest:0x0000555bbab0ecb0>
test/channels/application_cable/connection_test.rb:6:in `block in <class:ConnectionTest>
错误:
ApplicationTable::ConnectionTest#test(测试)将(测试)与 jwt连接起来:
NoMethodError:未定义的方法“post”#
测试/通道/应用\电缆/连接\测试。rb:6:in`块中
我应该怎么做才能对我的控制器执行此post
?
谢谢
奖励:如果我可以使用路由前缀,即
用户会话\u url
而不是“/users/sign\u in”
,那就更好了 这正是我两个小时来的动力!你找到解决办法了吗?感谢您向控制器发送POST
请求,我想您应该使用ActionDispatch::IntegrationTest
而不是ActionCable::Connection::TestCase
这正是驱使我花2个小时的原因!你找到解决办法了吗?感谢您向控制器发送POST
请求,我想您应该使用ActionDispatch::IntegrationTest
而不是ActionCable::Connection::TestCase