tutorial rails girl factorybot example create bot ruby-on-rails ruby-on-rails-3 rspec factory-bot

ruby-on-rails - rails - factorybot create



Factory Girl: ¿por qué se crean continuamente registros? (1)

Esto se debe a que Factory.create (: user ...) crea 1 usuario (usted tiene dos de estos, entonces son dos usuarios allí). Y la creación de dos nuevos Factory.create (: permisos) también crea un usuario según las reglas que configura en su definición (sus asociaciones), por lo que equivale a 4.

Si solo desea crear dos usuarios aquí, podría hacer

@user = Factory.create(:user) @user1 = Factory.create(:user) @perm1 = Factory.create(:permission, :user => @user) @perm2 = Factory.create(:permission, :user => @user1)

Soy nuevo en la chica de la fábrica. Lo que intento hacer es crear 2 usuarios, que pertenecen a un grupo, unidos por el modelo de permiso. Esto es lo que tengo. Cuando ejecuto este un rspec, crea más de 2 usuarios, 4+. ¿Por qué? Gracias

factories.rb:

require ''factory_girl'' Factory.define :user do |f| f.sequence(:fname) { |n| "fname#{n}" } f.sequence(:lname) { |n| "lname#{n}" } f.sequence(:email) { |n| "email#{n}@google.com" } f.password "password" f.password_confirmation { |u| u.password } f.invitation_code "xxxxxxxx" end Factory.define :group do |f| f.association :user f.sequence(:name) { |n| "myGroup#{n}" } f.sequence(:private_email) { |n| "myGroup#{n}" } end Factory.define :permission do |f| f.role_id 1 f.user {|i| i.association(:user)} f.group {|i| i.association(:group)} f.creator_id {|i| i.association(:user).id} end

incoming_mails_controller_spec.rb:

describe IncomingMailsController do include Devise::TestHelpers before do @user = Factory.create(:user, :permissions => [Factory.create(:permission)]) @user2 = Factory.create(:user, :permissions => [Factory.create(:permission)]) @group = Factory(:group) end it "should create a new IncomingMail record in the db" do .... end ....