Rspec测试,应与预期之间的差异



我正在测试我的模型。

我有以下测试:

it "....." do
  perm = FactoryGirl.create(:permission)
  new_permission = perm.dup
  new_permission.valid?.should be_false
end

此测试通过。但如果我把它改成:

expect { new_permission.valid? }.to be_false

为什么?

我得到以下错误:

     Failure/Error: expect{new_permission.valid?}.to be_false
   expected: false value
        got: #<Proc:0x007f9d20298258@/Users/..../Desktop/Projects/.../spec/models/permission_spec.rb:16>

有什么想法吗?

而不是

expect { new_permission.valid? }.to be_false

使用

expect(new_permission.valid?).to be_false

块形式可用于Expecting和Yielding。您可以在文档中阅读更多关于shouldexpect之间差异的信息。

最新更新