【发布时间】:2016-12-14 11:48:11
【问题描述】:
工厂在/factories/ 下的多个文件或factories.rb 文件中定义
spec/factories/*.rb
spec/factories.rb
模型客户测试需要customer工厂。这个工厂有一个指向address 工厂的外键。
- 地址工厂定义在
/spec/factories.rb - 客户工厂定义在
spec/factories/customer.rb
现在如果我运行
rspec spec/model/customer_spec.rb
我收到以下错误
postgresql_adapter.rb:602:in `exec_prepared': PG::ForeignKeyViolation:
ERROR: insert or update on table "customers" violates foreign key constraint "fk_rails_580b7e1bd8" (ActiveRecord::InvalidForeignKey)
DETAIL: Key (address_id)=(1) is not present in table "addresses".
: INSERT INTO "customers" ("date_of_birth", "created_at", "updated_at", , "female_household_members", "male_household_members", "pin_code", "national_id", ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) RETURNING "id"
FactoryGril 尝试先建立客户工厂,但由于地址表中缺少条目而失败。
如何避免这些依赖问题?我可以以某种方式定义先建立一些基本工厂吗?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rspec factory-bot