0

コントローラの仕様についてメール送信をテストしていますが、テストではメールが送信されていることを検出できません。ログには表示されますが、テストでは表示されません。私の疑いは、テストが電子メールとは異なるスレッドで実行されているため、テストがそれを見ることができないということです。何か案は?

コントローラ:

def update
  if @task.save!
    Emailer.send_task_email(@task.creator, :task_assigned, @task.project, @task).deliver
  end
end

コントローラの仕様:

it 'emails the creator' do
  john = build(:user)
  task = create(:task, :creator => john, project: project)

  put :update, { :id => task.to_param }

  Emailer.should_receive(:send_task_email).with(task.creator, :task_assigned, task.project, task)
end
4

1 に答える 1

2

Emailer.should_receiveラインをラインより上に移動しますput :update。それを呼び出すアクションを呼び出す前に、その呼び出しを予期するように指示する必要があります。

于 2012-11-18T04:21:43.997 に答える