为什么只有(已弃用的)#should
声明适用于我?
已注释掉的#expect
语句虽然完全按照课程中的示例进行操作但仍会失败。
require 'rails_helper'
describe Vote do
describe "validations" do
describe 'value validation' do
it "only allows -1 or 1 as values" do
vgood1 = Vote.create :value => 1
vgood2 = Vote.create :value => -1
vbad1 = Vote.create :value => 0
vbad2 = Vote.create :value => 2
vbad3 = Vote.create
expect (vgood1.valid?).should == true#eq(true)
# expect (vgood2.valid?).to eq(true)
# expect (vbad1.valid?).to eq(false)
# expect (vbad2.valid?).to eq(false)
# expect (vbad3.valid?).to eq(false)
end
end
end
end
以下是课程表中的示例
Failures:
1) Vote validations value validation only allows -1 or 1 as values
Failure/Error: expect(bad_v.valid?).to eq(false)
expected: false
got: true
答案 0 :(得分:1)
这看起来像是一个空白错误。
由于隐含的括号,Ruby读到了这个:
expect (vgood2.valid?).to eq(true)
这样:
expect((vgood2.valid?).to eq(true))
在后一种情况下,(vgood2.valid?)
是没有在其上定义to
方法的对象。