【发布时间】:2017-01-04 22:30:21
【问题描述】:
我正在尝试使用 RSpec 和 OmniAuth 测试经过身份验证的控制器。我在他们的 wiki 上关注了 integration testing 指南。当我运行测试时,我收到以下错误:
Failure/Error:
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.first_name = auth.info.first_name
user.last_name = auth.info.last_name
user.email = auth.info.email
user.picture = auth.info.image
user.save!
end
NoMethodError:
undefined method `provider' for nil:NilClass
此gist 中提供了所有相关代码。我的预感是没有以某种方式设置模拟身份验证哈希,但我无法验证这一点。我在config/environments/test.rb 中配置了 OmniAuth,如 Gist 中所示,我很确定该文件在应用程序启动时运行。
【问题讨论】:
标签: ruby-on-rails ruby rspec omniauth omniauth-google-oauth2