2

根据答案,我可以将rspec期望形式与一起使用。

value = true
expect(value).to be_a(TrueClass) # => true

但如果我使用#be_true它拒绝回答异常的方法:

expect(true).to be_true # => RSpec::Expectations::ExpectationNotMetError: expected true to respond to `true?`

所以我不能像我用过的方法那样使用它,rails但没有rails它本身。所以问题是如何添加不包括 的方法rails,而不是手动定义它们?

4

1 回答 1

1

试试这样:

expect(true).to be true

尽管 RSpec 文档表明be_true如果对象不是nil或将通过false,但实际上我发现如果对象是则它不会通过true。如果要检查该值是否true具体,而不仅仅是真实值,则需要使用be true, (带空格)、eql trueeq trueequal true等。

(如果你还不熟悉,你可以在这里阅读 RSpec 的相等匹配器之间的区别。你没有说你使用的是哪个 RSpec 版本,所以这适用于 3.2,我相信其他版本也是如此。 )

于 2015-02-04T22:03:43.600 回答