2011-12-06 206 views
1

我正在ruby中的用戶模型上運行單元測試。我仍然在學習Ruby。所以,當我運行Ruby「耙測試:單元」失敗

rake test:units 

我得到這個

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) 

,當我去到文件test/unit/user_test.rb:10我看到這條線,

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!我添加了一個日期驗證,它工作 –