Ruby on Rails - rspec验证失败:类必须存在

时间:2017-04-01 22:25:40

标签: ruby-on-rails rspec

我目前正在为我的网络应用程序编写测试,但我发现了一些超出我智能范围的测试。

背景: 我正在测试UserController的“show”方法。但是,User与Face类具有1对1的关系。

以下是测试show方法的代码。

it "assigns the requested user as @user" do
   face = Face.create(:id => 1)
   user = User.create! valid_attributes
   get :show, params: {id: user.to_param}, session: valid_session
   expect(assigns(:user)).to eq(user)
  end                                                                
end 

let(:valid_attributes) { { "lastName" => "lname", "firstName" => "fname", "face_id" => 1 } }

当我运行rspec时,这是控制台中的错误:

Failure/Error: user = User.create! valid_attributes

ActiveRecord::RecordInvalid:
   Validation failed: Face must exist

为什么Face不存在如果我创建了它?

1 个答案:

答案 0 :(得分:0)

问题只是Face需要一个额外的属性。确保仔细检查模型,因为Rails不会告诉您对象创建失败。 (这就是我的情况。)