2013-06-05 1 views
0

Я прав, чтобы проверить, имеет ли пользователь по умолчанию роль пользователя после создания. Для ролей у меня есть cancan и разрабатывать аутентификацию.не может проверить роль по умолчанию с rspec

В моей модели пользователя я это пропущено

after_create :default_role 

private 
    def default_role 
     self.roles << Role.find_by_name("user") 
     self.save 
    end 

в user.spec.rb это

it 'should have default role' do 
    role = Role.create! name: 'user' 
    user = User.create!(name: 'Andrew', email: "[email protected]", password: "12341234", password_confirmation: '12341234') 
    user.roles.count.should > 0 

конец

и RSpec выход

Failure/Error: user.roles.count.should > 0 
    expected: > 0 
     got: 0 

Я чтобы отладить это через co nsole использованием

user = User.create! name: 'Andrew', email: "[email protected]", password: "12341234", password_confirmation: '12341234' 

после создания успеха нового экземпляра пользовательского бегаю

user.has_role? :user 

и он вернулся верно ...

Есть идеи?

ответ

1

В Rspec после создания пользователя. Вы должны перезагрузить «пользовательский объект» сразу после его создания. Внесите свой код так:

it 'should have default role' do 
    role = Role.create! name: 'user' 
    user = User.create!(name: 'Andrew', email: "[email protected]", password: "12341234", password_confirmation: '12341234') 
    user.reload 
    user.roles.count.should > 0 
end 
+0

Great .. !!! Спасибо :) –

 Смежные вопросы

  • Нет связанных вопросов^_^