黄瓜: RSpec::Expect::ExpectationNotMetError: 预期为 true 以响应“true



根据答案,我可以对黄瓜使用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的方法,而不是手动定义它们?

尝试如下:

expect(true).to be true

尽管 RSpec 文档指出如果对象不nilfalse be_true会通过,但在实践中我发现如果对象true,它不会通过。如果要检查该值是否具体true,而不仅仅是真实值,则需要使用be true、(带空格)、eql trueeq trueequal true等。

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

相关内容

最新更新