如何使用factory_girl / factory_bot创建具有不同电子邮件ID的多个用户

时间:2018-03-30 11:33:58

标签: ruby-on-rails rspec

您好我正在使用ruby-2.5.0和rails 5开发Ruby on Rails项目。我正在使用factory_bot来创建用户。现在我有一个控制器和一个模型进行测试,所以我想创建两个具有不同电子邮件ID的用户。

factories/users.rb
# frozen_string_literal: true

FactoryBot.define do
  factory :user do
    email { 'abc1@xyz.com' }
    password { 'password' }
    password_confirmation { 'password' }
  end
end

我尝试按如下方式创建两条记录: -

factories/users.rb
FactoryBot.define do
  factory :user do
    sequence(:email, 2) { |n| "abc#{n}@xyz.com" }
    password { 'password' }
    password_confirmation { 'password' }
  end
end

但它没有创造任何记录。请帮助我如何创建具有不同电子邮件ID的多个用户。提前谢谢。

1 个答案:

答案 0 :(得分:1)

这是你的工厂:

factories/users.rb
FactoryBot.define do
  factory :user do
    sequence(:email) { |n| "abc#{n}@example.com" }
    password { 'password' }
    password_confirmation { 'password' }
  end
end

然后你可以编写规范

describe User, type: :model do
  describe 'some behaviour' do
    user = build(:user)
    expect(user.do_a_thing).to have_some_effect
  end
end