2017-05-05 7 views
0

上で実行しましたそれは基本的にそれがデータベースに永続化された後、画面上の新しいメッセージレンダリング:私はそれを作成したときは、私は、コールバックにジョブを実行するモデルを持っているコールバック

class MessageBroadcastJob < ApplicationJob 
    queue_as :default 

    def perform(message) 
    ActionCable.server.broadcast 'room_channel', message: render_message(message) 
    end 

    private 
    def render_message(message) 
     ApplicationController.renderer.render(
     partial: 'messages/message', 
     locals: { message: message } 
    ) 
    end 
end 

を、Railsはまた、テストのために/ message_broadcast_job_spec.rb仕様/ジョブを作成しました。このファイルでジョブをテストするにはどうすればいいですか?メッセージモデル(spec/models/message_spec.rb)がコールバック時にジョブを正しく呼び出しているかどうかをテストするにはどうすればよいですか?

答えて

0

Messageclass_stubを使用してMessageBroadcastJobを呼び出しているかどうかをテストすることができます。

は、あなたのテストでは、このような何かを試してみてください。

message_broadcast_job_class = class_double("MessageBroadcastJob").as_stubbed_const 
expect(message_broadcast_job_class).to receive(:perform_later).with(message) 
関連する問題