1

可能重复:
Factory Girl 序列不递增

看来 FactoryGirl 没有email正确执行序列,因为我在尝试创建 user 时遇到了失败6.times。(还要注意:我对该email字段有唯一性约束。)

FactoryGirl.define do
  factory :user do
    username 'asddfsa'
    sequence(:email) {|n| "asd01#{n}@gmail.com" }
    ...
  end
end

规格:

describe User do
  describe ".matches" do
    before :each do
      6.times { FactoryGirl.create(:user, :gender => 'Female', :seeking => 'Men') }
      4.times { FactoryGirl.create(:user, :gender => 'Male', :seeking => 'Women') }
      ...
    end
    ...

失败:

Failure/Error: 6.times { FactoryGirl.create(:user, :gender => 'Female', :seeking => 'Men') }
     ActiveRecord::RecordInvalid:
       Validation failed: Email has already been taken
     # ./spec/models/user_spec.rb:6:in `block (4 levels) in <top (required)>'
     # ./spec/models/user_spec.rb:6:in `times'
     # ./spec/models/user_spec.rb:6:in `block (3 levels) in <top (required)>'
4

1 回答 1

0

Dean Brundage的问题解决了我的问题......

另外我没有正确配置数据库清理器,这也是一个错误;)

于 2012-08-05T15:58:48.830 回答