gpt4 book ai didi

ruby-on-rails - RSpec 错误 用户必须与 FactoryGirl 一起存在

转载 作者:行者123 更新时间:2023-12-02 01:31:34 26 4
gpt4 key购买 nike

我正在创建一些测试来测试 Controller 和模型。当我使用 FactoryGirl 创建虚假数据时,我收到错误消息,指出用户(记录所属)不存在。

这是我的模型组合.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

现在我收到错误:验证失败:用户必须存在,组必须存在

当我不使用 FactoryGirl 创建记录时,一切正常。

有人对它失败的原因提出建议吗?

最佳答案

您不需要将 FactoryGirl 作为参数传递给 Model

@composition = FactoryGirl.create(:composition, user: @user, group: @group)

如果您不想创建记录而只想初始化它,请使用 build 而不是 create

@composition = FactoryGirl.build(:composition, user: @user, group: @group)

关于ruby-on-rails - RSpec 错误 用户必须与 FactoryGirl 一起存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42222049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com