将rspec-rails从版本2.14.0更新到3.0.0.beta2后,使用be_true
或be_false的所有测试都失败。
Failure/Error: user.new_record?.should be_true
NoMethodError:
undefined method `true?' for true:TrueClass
有什么建议吗? Google会返回任何相关信息!
答案 0 :(得分:8)
从版本3.0开始,RSpec将be_true
重命名为be_truthy
,将be_false
重命名为be_falsey
,如https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers/be-matchers中所述,并在https://github.com/rspec/rspec-expectations/issues/283中进行了讨论。
be_true
和be_false
在2.99中被弃用,在3.00中被删除,因为它们仅分别匹配true
和false
因此误导了。您收到的错误消息是因为缺少任何特定的be_xxxx
方法定义,be_xxxx
将查找并调用实际的xxxx?
。
请注意,如果您想匹配 true
,可以使用be true
(或be(true)
)。