【发布时间】:2015-05-08 16:26:14
【问题描述】:
目前,我正在学习 Rails。 当我使用验证格式构建模型时:
class Product < ActiveRecord::Base
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|jpg|png)$}i,
message: 'must be a URL for GIF, JPG or PNG image.',
multiline: true
} end
这个验证是为了测试image_url是否有gif、jpg或png的扩展名。
当我自己运行服务器并进行测试时,一切正常。当我尝试构建模型测试时,测试没有通过。
enter require 'test_helper'
class ProductTest < ActiveSupport::TestCase
def new_product(image_url)
Product.new(title: "bool",
description: "daf",
image_url: image_url)
end
test "image url" do
ok = %w{fred.gif fred.jpg fred.png RED.JPG RED.Jpg http://a.b.c/x/y/z/fesd.gif}
bad = %w{fred.doc fred.gif/more fred.gif.more}
ok.each do |name|
assert new_product(name).valid?, "#{name} shouldn't be invalid"
end
bad.each do |name|
assert new_product(name).invalid?, "#{name} shouldn't be valid"
end
end
end
我也认为 1 断言失败:
1) 失败:
ProductTest#test_image_url [/home/clark/Desktop/Agile_Rails/depot/test/models/product_test.rb
38]:
fred.gif 不应该是无效的
谁能帮帮我,我的测试代码错了吗?
【问题讨论】:
标签: ruby-on-rails regex