我正在使用Rspec 3并且我正在尝试编写一个测试,该测试在我的rake db:seed任务填充的db中测试值
到目前为止,我已经提出了
describe "Component Data" do
it 'Should have its values in the db' do
expect(Component.where(component_name: 'Literacy')).to eq(id: 1)
end
end
现在这是一个错误
Failure/Error: expect(Component.where(component_name: 'Literacy')).to eq(id: 1)
expected: {:id=>1}
got: #<ActiveRecord::Relation [#<Component id: 1, component_name: "Literacy", created_at: "2014-12-17 16:33:57", updated_at: "2014-12-17 16:33:57">]>
(compared using ==)
Diff:
@@ -1,2 +1,2 @@
-:id => 1,
+[#<Component id: 1, component_name: "Literacy", created_at: "2014-12-17 16:33:57", updated_at: "2014-12-17 16:33:57">]
所以我可能以错误的方式看待这个,我想要检查的是,1的Component Id实际上具有component_name值'Literacy'
如果有人能指出我正确的方向,我将不胜感激
由于
答案 0 :(得分:3)
你可以这样做:
describe "Component Data" do
it 'Should have its values in the db' do
expect(Component.find_by(component_name: 'Literacy').id).to eq(1)
end
end
答案 1 :(得分:3)
所以我可能以错误的方式看待这个,我想要检查的是,1的Component Id实际上具有&#39; Literacy&#39;
的component_name值
如果这真的是你想要的,那就这样做:
expect(Component.find(1).component_name).to eql('Literacy')
答案 2 :(得分:2)
您正在将ActiveRelation对象与哈希({id: 1}
)进行比较。比较id,如下所示。
expect(Component.where(component_name: 'Literacy').first.id).to eq(1)