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