我有以下型号Product
并测试相同。当我尝试运行测试时,在第22行的有效值assert product.valid?
上断言失败。 请问为什么?Rails测试失败,有效值
代码:
require 'test_helper'
class ProductTest < ActiveSupport::TestCase
test "product must not accept with empty attributes" do
product = Product.new
assert product.invalid?
assert product.errors[:title].any?
assert product.errors[:description].any?
assert product.errors[:price].any?
end
test "product must not acept invalid amount values" do
product = Product.new(:title => "test title",
:description => "test description",
:image_url => "image_url"
)
product.price = -1
assert product.invalid?
product.price = 0
assert product.invalid?
product.price = 1
# Line number 22 below
assert product.valid?
end
end
而且
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, :format => {
:with => %r{\.(gif|png|jpg)$}i,
:message => 'must be a URL for image'
}
end
请从您的编辑器发布代码而不是截图。这样人们可以更容易地剪切和粘贴。 – Telemachus 2012-03-04 11:21:17
@Telemachus对不起。但是,如何在粘贴代码时启用行号? – nobody 2012-03-04 11:31:19
我不认为有办法。您只需在第22行中添加注释,并说'#第22行 - 应该是有效的'或类似的。 – Telemachus 2012-03-04 11:36:34