模型的 rails 单元测试返回无效结果
Posted
技术标签:
【中文标题】模型的 rails 单元测试返回无效结果【英文标题】:rails unit tests for model returns invalid result 【发布时间】:2021-07-03 07:08:34 【问题描述】:我在我的 Rails 应用程序中定义了以下模型:
class Product < ApplicationRecord
validates :title, :description, :image_url, presence: true
validates :price, numericality: greater_than_or_equal_to: 0.01
validates :title, uniqueness: true
validates :image_url, allow_blank: true, format:
with: %r\.(gif\\png\\jpg)\zi,
message: 'must be a URL for GIf, PNG or JPG image'
end
以下是该模型的架构:
class CreateProducts < ActiveRecord::Migration[6.1]
def change
create_table :products do |t|
t.string :title
t.text :description
t.string :image_url
t.decimal :price, precision: 8, scale: 2
t.timestamps
end
end
end
以下是我的模型的单元测试:
test "product price should be greater than 0" do
product = Product.new(title: "abc", description: "abc", image_url: "abc.gif")
product.price = 20.00
assert product.valid?
end
当我使用 bin\rails test:models 运行这个测试时,它失败了,说断言失败。由于我将价格设置为大于 0.01,它应该已经过去了。有人可以解释为什么这里的测试失败了吗?
【问题讨论】:
【参考方案1】:请原谅我的错误,我发现验证我的 image_url 字段的正则表达式是错误的。我不得不使用|
运算符而不是\\
。修复此错误后,测试运行良好。
【讨论】:
以上是关于模型的 rails 单元测试返回无效结果的主要内容,如果未能解决你的问题,请参考以下文章