如何解决Rails 模型 minitest:“预期为真”
我无法在 RoR 小测试中获得通过断言。据我所知,这个对象应该是完全有效的。我可以在产品页面上添加一个具有这些属性的对象,但在测试中使用相同的属性会导致此断言失败。
型号:
class Product < ApplicationRecord
validates :title,:description,presence: true
validates :title,uniqueness: true
validates :price,numericality: { greater_than_or_equal_to: 0.01 }
validates :image_url,allow_blank: true,format: {
with: %r{\.(gif|jpg|png)\z}i,message: 'must be GIF,JPG,or PNG'
}
end
相关测试:
test "price must be greater than or equal to 0.01" do
product = Product.new(title: "My Book Title",description: "the description",image_url: "zzz.jpg")
product.price = -1
assert product.invalid?
product.price = 0
assert product.invalid?
product.price = 1
assert product.valid?
end
另外两个断言通过了,但即使设置了有效价格,关于对象的某些信息仍然无效。我还注释掉了 validates :price
部分,但测试中仍有一些无效。
这也是我第一次接触 Ruby,所以我可能会遗漏一些非常明显的东西,但我真的不知道。
解决方法
好吧,这真的很奇怪。我直接从这本书的网站下载了 products.rb 文件,尽管内容相同,正则表达式起作用并且所有断言都通过了。我只能假设有一些我不知道的关于 validates:calls 中的空格的规则?因为不然我也不知道,因为我的版本的内容和网站的版本完全一样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。