【发布时间】:2016-02-07 14:01:51
【问题描述】:
假设我有方法#sum,它接受一个数组并计算所有元素的总和。我把它存根了:
before do
expect(calculation_service).to receive(:sum?).with([1, 2, 3]) { 6 }
end
不幸的是,我的测试服以随机顺序通过数组。因为这个错误被提出:
Failure/Error: subject { do_crazy_stuff! }
#<InstanceDouble() (CalculationService)> received :sum? with unexpected arguments
expected: ([1, 2, 3])
got: ([3, 2, 1])
是否可以存根方法调用忽略数组元素的顺序? array_including(1, 2, 3) 不保证数组大小,所以这里可能不是最好的解决方案
【问题讨论】:
标签: ruby-on-rails arrays ruby ruby-on-rails-4 rspec