Factory Girl中的association不是引用而是创建么?

run27017 2015-12-15 04:15:45
我正在使用Mongoid,所以fixtures用不了了,用factory_girl进行替代。定义两个Model:


class User
include Mongoid::Document

field name, type: String
validates :name, uniquess: true
end

class Post
include Mongoid::Document

belongs_to :user
end


然后定义几个工厂:


FactoryGirl.define do
factory :user do #这会创建user
name 'user'
end
end

FactoryGirl.define do
factory :post1, class: 'Post' do
user #这会创建user
end
end

FactoryGirl.define do
factory :post2, class: 'Post' do
user #这会创建user
end
end


我是测试新手,不知道factory girl的使用习惯。我沿用fixtures的思维,在测试之前提前准备好数据库,使用下面的语句:


Mongoid::default_client.database.drop
FactoryGirl.lint


然后报错:


rake aborted!
FactoryGirl::InvalidFactoryError: The following factories are invalid:

* user -
message:
Validation of User failed.
summary:
The following errors were found: Name is already taken
resolution:
Try persisting the document with valid data or remove the validations. (Mongoid::Errors::Validations)/home/hello/workspace/scaffold/vendor/bundle/ruby/2.1.0/gems/factory_girl-4.5.0/lib/factory_girl/linter.rb:14:in `lint!'
。。。
...全文
6186 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,763

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ruby/Rails
社区管理员
  • Ruby/Rails社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧