我想知道測試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
方法更新數據庫,並定義了兩個流穿過通道播出,但具體細節不是很重要,因爲我的問題是一個比較一般一個:
- 我怎樣才能建立一個測試,測試通過訂閱 此通道涉及的邏輯是什麼?
RSpec在測試類似控制器動作之類的交互時提供了很多幫助方法和各種實用程序,但是我可以找到任何關於RSpec和ActionCable的東西。
這是一個非常不錯的主意,謝謝你,但(和糾正我,如果我錯了)用VCR(與TCR類似)是有道理的,當你想要存儲外部http請求(例如,如果我的控制器操作發出外部調用),但這裏並不是這種情況 - 這裏我只想調用我自己的內部方法。但再一次 - 這是一個好主意,我會放棄它。 – Dani
嘿丹妮,你找到了解決方案嗎?如果是這樣,你能否指出我可以檢查的回購協議? –