Я играю с защищенным паролем в рельсах 3.1. Я писал тестирование модели rspec, но не мог понять, как вызвать метод аутентификации, предоставляемый secure_password в rails 3.1.Rails 3.1 secure_password и Rspec
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 в моей модели пользователя
вот Lastest ошибка моя консоль дает мне:
/ruby-1.9.3-p0/gems/activesupport-3.1.3/lib/active_support/whiny_nil .rb: 48: in method_missing': undefined method
authenticate 'for nil: NilClass (NoMethodError)
Эй, Джеймс, спасибо за ответ! К сожалению, это не совсем так. Согласно реестру github, аутентификация должна возвращать значение false, если оно не аутентифицируется, поэтому false или be_nil должны работать. У меня также есть успешный тест, чтобы проверить, что @user отвечает на: password_digest. Я продолжу смотреть и дам вам знать. – sybohy
Обратите внимание, что тест «@user отвечает на: password_digest» для атрибута, являющегося частью схемы db, а не для строки has_secure_password в модели. –