Итак, выясняется, что Change-matcher вызывает proc.Так что это не проблема.Тем не менее, я звонил Редактировать, а не Обновлять.Так что ничего не должно было измениться.Кроме того, Пароль существует только для объектов пользователя, для которых пароль был только что установлен и не был получен из БД, поскольку пароль в открытом виде не сохраняется.Вот теперь работающий код:
describe "#update" do
it "Updates the password and resets the token" do
@user = Factory.create :user
getter = lambda{
post :update, :id => @user.perishable_token, :user => {:password_confirmation => "new_password",
:password => "new_password"}
@user.reload
}
getter.should change(@user, :crypted_password)
getter.should change(@user, :perishable_token)
end
end
Я думал, что это окажется глупой ошибкой, но два в одном ...