Я новичок и пытаюсь изучить Rails, используя книгу Agile Web Development with Rails, четвертое издание (для Rails 3.2). До сих пор можно было пройти через все главы без икоты. Если были ошибки, это был обычно мой неряшливый код (забыв о запятой, «конец» и т. Д.). Но теперь я попал в ловушку в главе «Unit Testing for Models». В той части, где мы проверяем, что URL-адрес изображения заканчивается либо .gif, .jpg, либо .png.Почему мой идентификатор модуля image_url не работает? (от Agile Web Development с учебником Rails «Depot»)
Я скопировал код дословно из книги файла депо/тест/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
Но когда я запускаю тест грабель: блоки команды, я получаю отказ .. .
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, я могу.
UPDATE: Был опечатка в моей модели Products, которая была причиной неудачной проверки. Все исправлено.
Да, получается, что произошла ошибка в моей модели продукта с этой линии: 'проверяет: IMAGE_URL, allow_blank: правда , format: {with:% r {\. (gif | jpg | png) $} i, message: 'должен быть URL для изображения GIF, JPG или PNG'} ' Тест проходит сейчас. Спасибо за помощь. – coolc0d3r