【发布时间】:2014-01-16 22:41:47
【问题描述】:
class ProductTest < ActiveSupport::TestCase
test "product attributes must not be empty" do
product = Product.new
assert product.invalid?
assert product.errors[:title].any?
assert product.errors[:description].any?
assert product.errors[:price].any?
assert product.errors[:image_url].any?
end
end
大家好。我对 Ruby on Rails 还很陌生,我正在尝试创建一个简单的在线书店。我有一个需要测试的产品模型。我试图用“英语”理解这段代码,但我很困惑。所以,模型需要包含:title、:description、:price、:image_url 对吗?
我们是否只是想测试一下 Product 模型中是否存在所有这些属性?
谢谢大家。
【问题讨论】:
-
“我们只是想测试一下产品模型中是否存在所有这些属性吗?”是的,如果产品没有这些属性,您正在测试它是无效的,并且它应该包含由于这些属性的验证失败而导致的错误消息,但是我需要在
product = Product.new之后有product.save -
嗨,bjhaid。感谢你的快速回复。您能否澄清“product.save”部分?我想它还会测试保存的产品是否包含给定的属性?谢谢。
-
触发验证
标签: ruby-on-rails ruby