微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – rspec-rails:未定义的方法`true?’ for true:更新为3.0.0.beta2版本后的TrueClass

将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会返回任何相关信息!

解决方法

从版本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,则可以使用true(或者为(true)).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐