私は新しく、Rails を使用したアジャイル Web 開発、第 4 版(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 モデルにタイプミスがあり、テストが失敗しました。すべて修正されました。