Rspec 3.1.0-为什么#to方法不适用于#x27;真的';?

Rspec 3.1.0-为什么#to方法不适用于#x27;真的';?,rspec,Rspec,为什么只有(不推荐的)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

为什么只有(不推荐的)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

这看起来像是一个空白错误

由于隐含的括号,Ruby读到:

expect (vgood2.valid?).to eq(true)
因此:

expect((vgood2.valid?).to eq(true))
在后一种情况下,
(vgood2.valid?
是没有定义
to
方法的对象