我是新手,正在尝试使用 Rails 的敏捷 Web 开发,第四版(适用于 Rails 3.2)一书来学习 Rails。到目前为止,能够顺利通关所有章节。如果有错误,通常是我草率的代码(忘记了逗号、'end' 语句等)。但是现在我在模型单元测试一章中遇到了障碍。在我们验证图像 URL 是否以 .gif、.jpg 或 .png 结尾的部分。
我从书中逐字复制了 depot/test/product_test.rb 文件的代码:
test "image url" do
ok = %w{ fred.gif fred.jpg fred.png FRED.JPG FRED.Jpg http://a.b.c/x/y/z/fred.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
但是当我运行rake test:units命令时,出现以下故障...
1) Failure:
test_image_url(ProductTest)[../depot/test/unit/product_test.rb:46]:
fred.gif shouldn't be invalid
4 tests, 13 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
这是否意味着它正在测试的图像 URL 无效?如果“fred.gif 不应该无效”是正确的,为什么测试会失败?
我非常有信心这部分测试肯定是不正确的,因为我在那里进行的其他测试(例如“产品属性不能为空”、“产品价格必须为正”等)运行得很好. 如果我取出“测试图像 url”代码块,我不会失败。
请让我知道我做错了什么。如果您需要我发布整个 ProductTest,我可以。
更新:我的 Products 模型中有一个错字导致测试失败。现在都修好了。