Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails 6中获取或发布ActionCable测试?_Ruby On Rails_Testing_Actioncable_Ruby On Rails 6 - Fatal编程技术网

Ruby on rails 在Rails 6中获取或发布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 需要“测试助手”

我正在使用JWT对我的用户进行身份验证

因此,当用户想要连接到ActionCable服务器时,它会执行以下操作:

  • 从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