[英]How can I write unit tescase for action cable connection class in rails 6
以下是我的 connection.rb
module ApplicationCable
class Connection < ActionCable::Connection::Base
identified_by :current_user
def connect
self.current_user = find_verified_user
end
private
def find_verified_user
verified_user = env['warden'].user
return verified_user if verified_user
end
end
end
如何使用环境变量
warden
进行单元测试? 我需要设置吗?
经过过多的搜索,我得到了
connection_test.rb
的解决方案
# frozen_string_literal: true
require "test_helper"
module ApplicationCable
class ConnectionTest < ActionCable::Connection::TestCase
include ActionCable::TestHelper
test "connects with devise" do
user = users(:admin)
connect_with_user(user)
assert_equal connection.current_user, user
end
private
def connect_with_user(user)
connect env: { 'warden' => FakeEnv.new(user) }
end
class FakeEnv
attr_reader :user
def initialize(user)
@user = user
end
end
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.