【发布时间】:2014-01-26 22:28:58
【问题描述】:
假设我有一些简单的 ActiveRecord 模型:
class Order < ActiveRecord::Base
def self.for_bucket(bucket)
create! bucket_id: bucket.id
end
end
目前的测试是:
it 'creates new persistent object' do
obj = subject.find_for_bucket(bucket)
expect{ subject.find_for_bucket bucket }.to change{ described_class.count }.by(1)
end
作为聪明的开发人员,我想通过将 NullDB 引入项目来删除数据库调用。
如何在不接触数据库的情况下测试方法Order.for_bucket?
【问题讨论】:
-
在单元测试中绝对不碰数据库是可取的。
标签: ruby-on-rails ruby unit-testing rspec