首页 > 解决方案 > 如何在rails中为异常编写rspec?

问题描述

我有一个交互器需要进行异常测试,但我无法通过规范

交互体

module RecordSchedules
  class UpdateRecords
    include PureInteractor

    attr_accessor :records

    def call(records:)
      records.each do |record|
        raise StandardError, 'record cannot be processed' if record.fail
      end
      records.update_attributes(units: 0)
    end
  end
end

规格

require 'rails_helper'

module RecordSchedules
  RSpec.describe UpdateRecords do

    before(:all) do
      # creation of record via factory.bot
    end


    context 'record should not saved' do
      it 'throw error when record is failed' do
        expect(described_class.call(records: @record)).to raise_error('record cannot be processed')
      end
    end
  end
end

获取失败 失败/错误:如果 record.fail 在执行 rspec时引发 StandardError,则“无法处理记录”

我无法判断需要做什么提前谢谢

标签: ruby-on-railsruby-on-rails-4rspecrspec-rails

解决方案


使用块来满足您的期望:

expect{
  described_class.call(records: @record)
}.to raise_error('record cannot be processed')

推荐阅读