Как вы сказали, поведение, которое вы описываете, заключается в том, что пароль невозможно восстановить в его простой форме, поэтому попробуйте написать спецификацию, описывающую это, а не шифрование, которое является более подробным описанием реализации.
specify "a user's password should not be readable when they are loaded from the database" do
my_password = 'foobar22'
u = User.create :password => my_password, :password_confirmation => my_password
u.reload
u.password.should_not == my_password
end
, который может быть лучше структурирован и сформулирован лучше, но даст неверную спецификацию, если вы просто сохраните и прочитаете пароли в виде открытого текста для аутентификации.
Не думаю, что вы получите много пользыопределение того, как работает шифрование, если вы сами его не реализуете (что обычно нежелательно).
Если вы решите использовать готовую систему (например, devise, просвет, ...), вы можете найти более полезным написать интеграционные тесты, чтобы проверить правильность работы системы в вашем проекте,вместо того, чтобы тестировать специфику системы аутентификации (что авторы уже должны были сделать, в противном случае найдите другую систему аутентификации!).