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

时间:2013-12-05 17:13:47

标签: ruby ruby-on-rails-3 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>

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

而不是

expect { new_permission.valid? }.to be_false

使用

expect(new_permission.valid?).to be_false

块形式可用于期望和屈服。您可以阅读有关the difference between should and expect in the docs的更多信息。