2013-05-21 80 views
3

這個測試失敗保持,我不知道爲什麼:Ruby on Rails的:更詳細的測試

test "correctly formatted profile_name2" do 
    user = User.new(first_name: 'Jim', last_name: 'Johnson', email: '[email protected]', password: 'awfawwf', profile_name: "jimmy") 
    puts user.errors.inspect 
    assert user.valid? 
    end 

我試圖通過puts user.errors.inspect語句找出來了,但我回來的陣列(我認爲)只是列出了數據庫的輸入,而不是確切地說失敗了。

對於澄清:

<ActiveModel::Errors:0x00000103c8ad30 @base=#<User id: nil, first_name: "Jim", last_name: "Johnson", profile_name: "jimmy", email: "[email protected]", encrypted_password: "$2a$04$LTOb5O.gG0DEITsb/HDOb.fPLP83LaXzKlEerwCDE1og...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, confirmation_token: nil, confirmed_at: nil, confirmation_sent_at: nil, unconfirmed_email: nil, failed_attempts: 0, unlock_token: nil, locked_at: nil, authentication_token: nil, created_at: nil, updated_at: nil>, @messages={}> 

在未來的測試,在測試中使用了哪些報表打印到屏幕上明確什麼錯?

+1

user.errors.full_messages會給你一個漂亮的格式,但是因爲有在輸出中沒有消息,IDK的爲什麼用戶無效 –

回答

5

而不是在測試中輸出更詳細的信息,它可能有助於設置TESTOPTS參數以在運行測試時獲得詳細輸出。

例如,你會設置這樣的:

rake test TESTOPTS="-v"