Cha*_*ick 4 ruby rspec ruby-on-rails factory-bot
我试图养成编写规范的习惯,然而,这变得越来越令人沮丧.
假设我有两个简单的模型:User和Story.每个模型都使用一种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记录.
只有在未在create或build调用中指定值时,才会使用为工厂中的每个属性定义的值.
user = FactoryGirl.create(:user)
story = FactoryGirl.create(:story, user: user)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2305 次 |
| 最近记录: |