RubyOnRails Rake测试失败

Ron*_*_sl 1 ruby rake ruby-on-rails

我尝试从"使用Rails 4的敏捷Web开发"创建网上商店.当我写'rake test'时,我收到这条消息:

$ rake test
Run options: --seed 54737

# Running:

........F...F

Finished in 0.279167s, 46.5671 runs/s, 118.2088 assertions/s.

  1) Failure:
ProductTest#test__product_is_not_valid_without_a_unique_title_-_i18n                 [/Users/roni/Coding/Ruby/depot/test/models/product_test.rb:82]:
--- expected
+++ actual
@@ -1 +1 @@
-["translation missing: en.activerecord.errors.messages.taken"]
+["has already been taken"]



  2) Failure:
ProductTest#test_product_price_must_be_positive     [/Users/roni/Coding/Ruby/depot/test/models/product_test.rb:25]:
Failed assertion, no message given.

13 runs, 33 assertions, 2 failures, 0 errors, 0 skips
Run Code Online (Sandbox Code Playgroud)

这是product_test.rb

http://pastebin.com/1f5zkDwa

拜托,帮帮我,我做错了什么?

jur*_*lic 5

看来,"已经采取"案例的错误消息的位置已在Rails 4中更改,并且该书必定已错过此更新.

错误消息已移至命名空间,其中还包含ActiveModel的其他验证错误消息errors.messages.因此,'take'错误消息是在key下设置的activerecord.errors.messages.taken,但在Rails 4中它是在errors.messages.taken.

如果使用新密钥更新测试中的第82行,则测试应该通过.