编写用于在Rails中创建和更新api的minitests

问题描述 投票:1回答:1

我对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

我已经编写了用于创建和更新的测试用例。但是我怎么写将执行救援部分的测试用例??

ruby-on-rails ruby unit-testing minitest
1个回答
0
投票

您需要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
© www.soinside.com 2019 - 2024. All rights reserved.