私はこのようなアクションを持ってcreate
いますUsersController
def create
@user = User.new(params[:user])
if @user.save
sign_in_as(@user)
Resque.enqueue(MailWorker, @user.email)
redirect_to root_url, notice: "Thanks"
else
render "new"
end
end
このアクションに追加reqsue
する前に、このようなメール確認をテストしてきました
it "creates a new user account" do
# code for creating a new account...
ActionMailer::Base.deliveries.size.should == 1
mail = ActionMailer::Base.deliveries.last
mail.to.should == [user[:email]]
mail.body.encoded.should match(/Thank you for registration/)
end
しかし、今、メッセージを配信するためにresque workerを追加したので、メッセージをすぐに配信しないと思います。そのため、このテストはメッセージで失敗しました
Failure/Error: ActionMailer::Base.deliveries.size.should == 1
expected: 1
got: 0 (using ==)
非同期ワーカーが関与し、結果がそれらに依存する場合、そのようなケースをどのようにテストできますか?