在我的一些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
但这并不能解决如何登录用户的问题。
答案 0 :(得分:2)
当你想进行控制器测试时(我假设你想要这样做,因为你正在谈论会话),只需将调用存根到你的current_user
。
我在我的项目中使用omniauth和rspec,你可能会发现它很有用:https://github.com/phoet/on_ruby/blob/master/spec/controllers/likes_controller_spec.rb#L16-L18