So habe ich Benutzer ModellFactoryGirl.create nicht immer in spec Regler
ich es mit Gerüst schaffen
der Test in Modell-Spezifikation übergeben wird, aber es ist immer in Controller-Spezifikation nicht
meine users_controller_spec
require 'rails_helper'
RSpec.describe Api::V1::UsersController, type: :controller do
describe "GET #show" do
before(:each) do
@user = FactoryGirl.create :user
get :show, id: @user.id
end
it { should respond_with 200 }
end
end
mein Benutzerhandbuch factory
FactoryGirl.define do
factory :user do
name "MyString"
sex_id 1
end
end
ich Benutzer von meiner Konsole erstellen und von meinem Benutzermodell spec
FactoryGirl.create :user
aber es immer fehlschlagen, wenn ich es von meinem Controller spec
1) Api::V1::UsersController GET #show
Failure/Error: @user = FactoryGirl.create :user
ActiveRecord::InvalidForeignKey:
PG::ForeignKeyViolation: ERROR: insert or update on table "users" violates foreign key constraint "fk_rails_12f007df76"
DETAIL: Key (sex_id)=(1) is not present in table "sexs".
: INSERT INTO "users"
# ------------------
# --- Caused by: ---
# PG::ForeignKeyViolation:
# ERROR: insert or update on table "users" violates foreign key constraint "fk_rails_12f007df76"
# DETAIL: Key (sex_id)=(1) is not present in table "sexs".
# /home/user/.rvm/gems/ruby-2.1.8/gems/factory_girl-4.7.0/lib/factory_girl/configuration.rb:18:in `block in initialize'
Die Fehlermeldung besagt, dass _Sie keinen Sex-Datensatz mit ID 1_ haben. –
yeah Ich habe zwei Modelle mit fast gleichen Attributen, aber dieses Modell besteht den Test, aber dieses Modell scheitert, ich versuche meinen Code von Anfang an neu zu schreiben. Hoffe, dieses Problem wird behoben – icemelt