I've spent the last two hours figuring out what is wrong, but could not find the answer anywhere.
Its my first rails application (except Hartl's tutorial) so the solution might be simple.. I'm using Devise to manage my Users, everything is really ok with it up until now.
Trying to test the User model I defined a factory like this:
FactoryGirl.define do
factory :user do
email "[email protected]"
password "123123"
password_confirmation { "123123" }
end
end
and the test is:
describe User do
# pending "add some examples to (or delete) #{__FILE__}"
@user = FactoryGirl.create(:user)
subject(:user)
it { should respond_to(:email) }
it { should respond_to(:password) }
it { should be_valid }
end
But the last line ( it { should be_valid } ) fails the test.
I've printed the value of user/@user (tried both) and it came out nil. Edit: It's not nil. Its
#<User id: 13, email: "[email protected]", encrypted_password: "$2a$04$.lWs6yadJu/Ya67xi.W1F.fd6sWLGkzc/59.lgTi0sA7...", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2012-08-27 15:48:23", updated_at: "2012-08-27 15:48:23">
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me
# attr_accessible :title, :body
validates :email, :presence => true
validates :password, :presence => true
end
What is it that I don't see?
OK, I finally found the problem. It turns out you have to restart "spork" when ever you make a change to the User model, because it preloads it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With