【发布时间】:2020-07-17 17:53:57
【问题描述】:
我想检查数字除以0是否会从下面的方法中上升ZeroDivisionError
def progress_percent
(activity_reads.size / journey.cms_activity_ids.size.to_f)
rescue ZeroDivisionError
0
end
我的规格是:
context 'when journey does not have activity' do
let!(:activity_read) { ['test', 'test'] }
let(:journey) { build(:journey, :without_activity) }
it 'raise the ZeroDivisionError' do
expect { call }.to raise_error(ZeroDivisionError)
end
end
当我将binding.pry 放入progress_percent 方法时,我得到了预期的结果,所以activity_read = 2 和journey.cms_activity_ids.size.to_f = 0 但在我的测试中出现了错误:
Failure/Error: expect { call }.to raise_error(ZeroDivisionError)
expected ZeroDivisionError but nothing was raised
编辑:
这是更大类的一部分
def call
Progres.update(
user_id: current_user.id,
percent_progress: progress_percent,
)
end
private
def progress_percent
(activity_reads.size / journey.cms_activity_ids.size.to_f)
rescue ZeroDivisionError
0
end
【问题讨论】:
标签: ruby-on-rails ruby