如何在Rspec中创建Omniauth用户和会话?

时间:2014-03-19 20:19:47

标签: ruby-on-rails ruby rspec omniauth

在我的一些Rspec测试中,我需要登录用户。我目前正在使用Omniauth,但我不确定如何在测试框架中执行此操作。

如何通过Omniauth进行身份验证和创建用户并使用Rspec进行签名。我想创建用户,我可以调用create_with_omniauth方法:

def self.create_with_omniauth(auth)
        create! do |user|
            user.provider = auth["provider"]
            user.uid = auth["uid"]
            user.name = auth["info"]["name"]
            end
end

但这并不能解决如何登录用户的问题。

1 个答案:

答案 0 :(得分:2)

关于omniauth的好处是,你大部分时间都不必关心它。

当你想进行控制器测试时(我假设你想要这样做,因为你正在谈论会话),只需将调用存根到你的current_user

我在我的项目中使用omniauth和rspec,你可能会发现它很有用:https://github.com/phoet/on_ruby/blob/master/spec/controllers/likes_controller_spec.rb#L16-L18