繁体   English   中英

如何在 rails 6 中为动作电缆连接类编写单元测试用例

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM