FactoryGirl创建多个记录

Cha*_*ick 4 ruby rspec ruby-on-rails factory-bot

我试图养成编写规范的习惯,然而,这变得越来越令人沮丧.

假设我有两个简单的模型:UserStory.每个模型都使用一种belongs_to关系.每个模型也使用一个validates :foo_id, presence: true.

但是,FactoryGirl正在创建多个记录.

FactoryGirl.define do
  factory :user do
    email "foo@bar.com"
    password "foobarfoobar"
  end # this creates user_id: 1

  factory :story do
    title "this is the title"
    body "this is the body"
    user # this creates user_id: 2
  end
end
Run Code Online (Sandbox Code Playgroud)

这个简单的测试失败:

require 'rails_helper'

describe Story do

  let(:user) { FactoryGirl.create(:user) }
  let(:story) { FactoryGirl.create(:story) }

  it 'should belong to User' do
    story.user = user
    expect(story.user).to eq(user)
  end
end
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?Story没有a User,我不能建造一个工厂,但我需要它只是一个User记录.

Chr*_*oom 8

只有在未在createbuild调用中指定值时,才会使用为工厂中的每个属性定义的值.

user = FactoryGirl.create(:user)
story = FactoryGirl.create(:story, user: user)
Run Code Online (Sandbox Code Playgroud)