我正在为模型编写测试用例(单元测试),并且得到了一个错误,我真的不知道为什么……
下面是我的错误:
Failure/Error: expect(Shelf.enabled.count).to eq 2
NoMethodError:
undefined method `enabled' for #<Class:0x00000005a2c088>这是我在模型规范中的代码。models/shelf_spec.rb
describe 'shelves' do
before do
Fabricate(:shelf, heading_products: 'Top Selling Products', heading_vendors: 'Top Selling Brands', enabled: true, product_ids: '1, 2', vendor_ids: '1, 3')
Fabricate(:shelf, enabled: true, expires_on: Date.today)
Fabricate(:shelf, enabled: false, expires_on: 1.day.ago)
end
describe 'Shelf#enabled' do
it 'should return enabled shelves' do
expect(Shelf.enabled.count).to eq 2
end
it 'shelves returned should be enabled' do
expect(Shelf.enabled.first.enabled?).to be_true
end
end
endenabled是工具架布尔类型的属性。
请纠正我遗漏或错误的地方。
谢谢
发布于 2014-08-19 21:25:29
您需要在Shelf类上创建一个作用域,以便实际搜索已启用的记录。
class Shelf
scope :enabled, -> { where(enabled: true) }
...
endhttps://stackoverflow.com/questions/25380300
复制相似问题