Если вы хотите иметь возможность заглушить ответы, сделайте следующее:
В функциях / support / helpers.rb:
ActionController::Base.class_eval do
private
def fake_openid_response(identity_url)
[OpenIdAuthentication::Result.new(:successful), identity_url, nil]
end
def begin_open_id_authentication(identity_url, options = {})
yield fake_openid_response(identity_url)
end
end
Переместив ответ в отдельный метод, вы теперь можете заглушить ответ в своих шагах, если это необходимо. Например, если я хотел получить ответ «отсутствует» и у меня был контроллер GoogleLoginController, я мог бы сделать следующее, используя Mocha:
GoogleLoginController.any_instance.stubs(:fake_openid_response)
.returns([OpenIdAuthentication::Result.new(:missing), identity_url, nil])