Rails 3.1 secure_password и Rspec - PullRequest
       33

Rails 3.1 secure_password и Rspec

1 голос
/ 28 декабря 2011

Я играю с secure_password в рельсах 3.1. Я писал тестирование модели rspec, но не мог понять, как вызвать метод authenticate, предоставляемый secure_password в rails 3.1.

describe "authentication" do
  before(:each) do
    @user = User.create!(@attr)
  end
....

  describe "it should check credentials" do
    describe "it should return false on an invalid password" do
      @user.authenticate("wrongpass").should_be false
    end
  end
end

Есть идеи? Обратите внимание, что я использую has_secure_password в моей модели пользователя

вот последняя ошибка, которую моя консоль выдает мне:

/ ruby-1.9.3-p0 / gems / activesupport-3.1.3 / lib / active_support / whiny_nil.rb: 48: в method_missing': undefined method authenticate 'для nil: NilClass (NoMethodError)

1 Ответ

0 голосов
/ 28 декабря 2011

authenticate возвращает пользователя, если введен правильный пароль или ноль. Если у вас все настроено правильно (не забудьте добавить столбец password_digest) это должно работать:

@user.authenticate("wrongpass").should be_nil

Обновление: согласно добавленному вами сообщению об ошибке, @user равен nil, так что вам следует это проверить.

...