该测试不断失败,我不知道为什么:

  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={}>

在以后的测试中,测试中使用哪些语句来打印以明确显示出问题所在?

最佳答案

与其在测试中输出更多详细信息,不如将其设置为在运行测试时获取详细输出,还可以帮助您设置TESTOPTS参数。

例如,您可以这样设置:

rake test TESTOPTS="-v"

关于ruby-on-rails - Ruby on Rails : more verbose tests,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16671253/

10-15 12:21