私はActionCableチャネルのテストについて疑問に思っています。RSpecを使用してActionCableチャンネルをテストするにはどうすればよいですか?
のは、私は次のチャットチャンネルを持っているとしましょう:
class ChatChannel < ApplicationCable::Channel
def subscribed
current_user.increment!(:num_of_chats)
stream_from "chat_#{params[:chat_id]}"
stream_from "chat_stats_#{params[:chat_id]}"
end
end
subscribed
方法は、DBを更新し、チャネルを介して放送される2つのストリームを定義していますが、私の質問が多いので、詳細は非常に重要ではありません一般的なもの:
- このチャンネルを購読することで、ロジックをテストするテストを設定するにはどうすればよいですか?
RSpecは、コントローラアクションのような同様のやりとりをテストするときに、多くのヘルパーメソッドとさまざまなユーティリティを提供しますが、私はRSpecとActionCableに関する何かを見つけることができます。あなたのケースでは、私が記録ソケットの相互作用(「WebSocketをのためにそのようなVCR」)のためTCR gemをインストールして構成します
をtest_caseは理にかなっています外部HTTP要求をスタブしたい場合(コントローラのアクションが外部呼び出しを発行する場合など)、ここではそうではありません。ここでは、自分の内部メソッドを呼び出すだけです。しかしもう一度 - 良いアイデアだと私はそれを行ってみましょう。 – Dani
ちょっとダニ、解決策を見つけましたか?もしそうなら、私がチェックアウトできるレポを指摘できますか? –