ruby-on-rails – 当使用open_id_authentication插件时,如何在RSpec用户故事/ Cucumber中伪造OpenID登录

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 当使用open_id_authentication插件时,如何在RSpec用户故事/ Cucumber中伪造OpenID登录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写一个Cucumber场景,要求我有一个登录用户 – 这通常很简单,但我只使用OpenID身份验证(认证插件的简化).然而,在深入挖掘open_id_authentication插件后,我不确定如何在Cucumber中实现这一点.

解决方法

我找到了一种方法,如果你将它放在你的features / support / env.rb中:
ActionController::Base.class_eval do
  private

  def begin_open_id_authentication(identity_url,options = {})
    yield OpenIdAuthentication::Result.new(:successful),identity_url,nil
  end 
end

然后你可以在适当的步骤中做这样的事情:

Given /^I am logged in as "(.*)"$/ do |name|
  user = User.find_by_name(user)
  post '/session',:openid_url => user.identity_url
  #Some assertions just to make sure our hack in env.rb is still working
  response.should redirect_to('/')
  flash[:notice].should eql('Logged in successfully')
end

我只是完全破坏了黄瓜功能的开放id身份验证,显然如果我需要登录失败的实例,我可以根据提供的identity_url做到这一点.

猜你在找的Ruby相关文章