I am trying to simulate a session using FactoryGirl
/shoulda
(it worked with fixtures but i am having problems with using factories). I have following f
Factory(:user)
is a shortcut for Factory.create(:user)
so within your setup you are creating two objects and saving them to the database.
Factory.build(:user)
will create you a user
record without saving it to the DB.
EDIT
Within your session_user
factory you are creating a user and then creating another within your test setup. FactoryGirl
will create a new user
record because you have the association in the session_user
factory.
You can either get your user
instance from the session_user
object as follows :-
context "normal user" do
setup do
session = Factory(:session_user)
@request.session[:session_id] = session.session_id
@request.session[:user_id] = session.user_id
end
or you can add some details to the user
factory to ensure unique name and email addresses as follows :-
Factory.define :user do |u|
u.sequence(:login) {|n| "quentin#{n}" }
u.sequence(:email) {|n| "quentin#{n}@example.com"}
end