私は現在自分のWebアプリケーションのテストを書いています。Ruby on Rails - rspec検証に失敗しました:クラスが存在する必要があります
コンテキスト: 私はUserControllerの "show"メソッドをテストしています。ただし、ユーザーは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にはid以外の何かが必要でしょう。 – linnal
あなたは真ん中でそれを打つ。問題は実際にフェイスクラスでした。追加の財産が必要でした。私はそれがコンソールにそれを記録していないことが奇妙なことがわかります。ありがとうlinnal。 – MasterJohn
Faceオブジェクトに 'id'を自分で割り当てるのはなぜですか? –