Неопределенный метод `stub_connection 'в тесте RSpec для канала ActionCable - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть следующий тест:

require "rails_helper"

RSpec.describe MyChannel, type: :channel do
  let (:current_user) { User.first }

  it "subscribes to a unique room for the user" do
    stub_connection current_user: User.first
    subscribe
    expect(subscription).to be_confirmed
    expect(streams).to include("my_channel_#{current_user.id}")
  end
end

Сбой при ошибке:

 Failure/Error: stub_connection current_user: User.first

 NoMethodError:
   undefined method `stub_connection' for #<RSpec::ExampleGroups::MyChannel:0x00000000deadbeef>
 # ./spec/channels/my_channel_spec.rb:7:in `block (2 levels) in <top (required)>'

В соответствии с документацией и всеми примерами, которые я нашел, stub_connection должен быть автоматически доступен при тестировании канала RSpec. Что я делаю не так?

1 Ответ

0 голосов
/ 08 ноября 2018

Мне нужно было установить экшн-кабель для тестирования действий . На момент написания этого ответа функциональность этого драгоценного камня запланирована для интеграции непосредственно в Rails в какой-то момент в Rails 6 .

После установки гема убедитесь, что требует гем в вашем rails_helper.rb файле :

Использование RSpec

Сначала вам нужно установить rspec-rails.

Во-вторых, добавьте это к своему "rails_helper.rb" после запроса environment.rb:

require "action_cable/testing/rspec"

...