【发布时间】:2020-03-05 11:39:14
【问题描述】:
我的电话看起来像
1) foo1 => MyModel.where(id: my_model_ids)
2) foo2 => MyModel.where('date > :new_date', {new_date: DateTime.new(0)})
3) foo2.sum(:count)
如何测试这个调用链? 我试过这个
where_mock = instance_double(ActiveRecord::Relation)
result_mock = instance_double(ActiveRecord::Relation)
filter = 'date > :new_date'
new_data_hash = {new_date: DateTime.new(0)}
expect(where_mock).to receive(:where).with(filter, new_data_hash).and_return(result_mock)
expect(result_mock).to receive(:sum)
但是没用
【问题讨论】:
-
为什么要模拟这些方法调用而不是仅仅测试结果是否正确?
标签: ruby-on-rails ruby rspec