我对Rails非常陌生,我正在为Rails应用程序编写测试用例。假设我有这样的代码-
class EmailController < ApplicationController
def new
render :layout => false
end
def create
begin
process_email = ProcessEmail.new(params)
process_email.perform
rescue EmailHelper::HtmlSanitizerTimeoutError, EmailHelper::NokogiriTimeoutError => e
NewRelic::Agent.notice_error(e, account_id: Account.current.id, subject: params[:subject])
process_email.mark_email_on_timeout
end
render layout: 'email'
end
def update
----
end
我已经编写了用于创建和更新的测试用例。但是我怎么写将执行救援部分的测试用例??
您需要stub
您的错误部分,source像这样的东西:
process_email = double("fake process email class")
allow(process_email).to receive(:perform).and_raise(EmailHelper::HtmlSanitizerTimeoutError)
post '/emails', params: blah-blah-blah