Я создаю тест для тестирования контроллера и модели. Когда я использую FactoryGirl для создания поддельных данных, я получаю ошибки, которые пользователь (к которому принадлежит запись) не существует.RSpec error Пользователь должен существовать с FactoryGirl
Вот моя модель composition.rb
class Composition < ActiveRecord::Base
belongs_to :user
belongs_to :group
validates :name, presence: true, uniqueness: {scope: :user_id}
end
Вот мой FactoryGirl файл composition.rb
require 'faker'
FactoryGirl.define do
factory :composition do
name { Faker::Name.name }
description { Faker::Lorem.words }
import_composition { Faker::Boolean.boolean }
import_composition_file { Faker::File.file_name('path/to') }
end
end
Это мой тест RSpec, что у меня до этого далеко
require 'rails_helper'
describe CompositionsController do
before(:each) do
@user = FactoryGirl.create(:user)
@group = FactoryGirl.create(:group)
sign_in @user
@composition = Composition.new(FactoryGirl.create(:composition), user_id: @user.id, group_id: @group.id)
end
describe "GET #index" do
it "renders the index template" do
get :index
expect(assigns(:composition).to eq(@composition))
expect(response).to render_template("index")
end
end
end
Сейчас я получаю сообщение об ошибке: Не удалось выполнить проверку: пользователь должен существовать, G roup должен существовать
Когда я не пользователь FactoryGirl, чтобы создать запись, все работает нормально.
Есть ли у кого-нибудь предложения, почему это не удается?
'' '@composition = FactoryGirl.create (: composition, user_id: @ user.id, group_id: @ group.id)' '' – cutalion