2011-12-06 2 views
1

ルビーのユーザーモデルで単体テストを実行しています。私はまだルビーを学んでいます。私はruby​​ "rake test:units"のエラー

rake test:units 

を実行したときにだから私は、私はtest/unit/user_test.rb:10を提出するために行くとき、この

Loaded suite /usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader 
Started 
F 
Finished in 0.116562 seconds. 

    1) Failure: 
test_user_attributes_must_not_be_empty(UserTest) [test/unit/user_test.rb:10]: 
<false> is not true. 

1 tests, 5 assertions, 1 failures, 0 errors 
rake aborted! 
Command failed with status (1): [/usr/bin/ruby1.8 -I"lib:test" "/usr/lib/ru...] 

Tasks: TOP => test:units 
(See full trace by running task with --trace) 

は私が

require 'test_helper' 

    class UserTest < ActiveSupport::TestCase 
     test "user attributes must not be empty" do 
      user = User.new 
     assert user.invalid? 
     assert user.errors[:username].any? 
     assert user.errors[:name].any? 
     assert user.errors[:surname].any? 
     >>>assert user.errors[:date_birth].any?<<< Here! 
     assert user.errors[:date_reg].any? 
     assert user.errors[:email].any? 
    end 
end 

だから何それはエラーの原因となっている、この行を参照してください取得しますか?なぜ私はそこにエラーを表示していますか?ユーザー名のような?

編集: 私のユーザークラス:

class User < ActiveRecord::Base 

validates :username, :name, :surname, :email, :presence => true 
validates :username, :uniqueness => true 

end 
+0

あなたはユーザークラスですか? – Nerian

+0

コンソールに 'User.new'が出力するものを教えてください。 –

+0

どうすれば実行できますか? –

答えて

2

何あなたのテストが言っていることは、すべてのそれらの属性のいずれかのエラーテストパスがあるかどうかということです。

date_birthの検証がないため、エラーは発生しないため、テストは合格しません。

+0

hmm ok thx!私は日付のバリデーションを追加し、それは働いた –

関連する問題