发现Invalid Record factory girl中的错误

Dan*_*ier 2 testing activerecord rspec ruby-on-rails factory-bot

我有这样的用户工厂:

FactoryGirl.define do
  factory :user do
    email "email@x.com"
    password "123456789"
  end
end
Run Code Online (Sandbox Code Playgroud)

我正在尝试为用户创建规范:

describe User do
  it "should create a user with password" do
    user = FactoryGirl.create(:user, password: "secret")
    user.password.should == "secret"
  end   
end
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我收到此消息:

  1) User should create a user with password
     Failure/Error: user = FactoryGirl.create(:user, password: "secret")
     ActiveRecord::RecordInvalid:
       is invalid
     # ./spec/models/user_spec.rb:3:in `block (2 levels) in <top (required)>'
     # -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

问题是:如何发现模型中哪些字段无效?换句话说,如何在模型中打印错误消息?

小智 6

您可以随时暂时将测试更改为:

user = FactoryGirl.build(:user, password: "secret")
Run Code Online (Sandbox Code Playgroud)

然后检查user.valid?user.errors