Estoy tratando de simular una sesión usando FactoryGirl
/shoulda
(funcionó con accesorios pero estoy teniendo problemas con el uso de fábricas). He siguientes fábricas (de inicio de sesión de usuario y correo electrónico y los otros tenemos unique
validaciones):cuando la chica de fábrica crea objetos en db?
Factory.define :user do |u|
u.login 'quentin'
u.email '[email protected]'
end
Factory.define :session_user, :class => Session do |ses|
ses.association :user, :factory => :user
ses.session_id 'session_user'
end
y aquí está la prueba
class MessagesControllerTest < ActionController::TestCase
context "normal user" do
setup do
@request.session[:user_id]=Factory(:user).id
@request.session[:session_id]=Factory(:session_user).session_id
end
should "be able to access new message creation" do
get :new
assert_response :success
end
end
end
pero cuando corro rake test:functionals
, yo conseguir este resultado de la prueba
1) Error:
test: normal user should be able to access new message creation. (MessagesControllerTest):
ActiveRecord::RecordInvalid: Validation failed: Account name already exists!, Email already exists!
lo que significa que el registro ya existe en db cuando me refiero a él en la configuración de prueba. ¿Hay algo que no entiendo aquí? ¿FactoryGirl
crea todas las fábricas en db en el inicio?
rieles 2.3.5/Shoulda/factorygirl
pero solo tengo una mención de Fábrica (: usuario) en mi código. ¿Por qué funciona dos veces? (segundo es Factory (: session_user), que es una instancia de sesión) –
Lo siento, debe leer la pregunta –