在本教程之后,我在路径
创建了一个文件omniauth.rb规格/支持/助手/ omniauth.rb
module Omniauth
module Mock
def auth_mock
OmniAuth.config.mock_auth[:twitter] = {
'provider' => 'twitter',
'uid' => '123545',
'user_info' => {
'name' => 'mockuser'
},
'credentials' => {
'token' => 'mock_token',
'secret' => 'mock_secret'
}
}
end
end
end
但是当我运行rspec时,我收到“未初始化的常量Omniauth”的错误
rails-omniauth/spec/support/helpers.rb:2:in `block in <top (required)>': uninitialized constant Omniauth (NameError)
似乎很清楚,omniauth.rb或helpers.rb应该位于不同的位置,但我不知道在哪里。
更新:
我随后尝试通过Rails Composer应用程序安装rails-omniauth。当我为这个应用程序运行“rspec”时,我得到完全相同的错误。
答案 0 :(得分:0)
在本教程的某一点上,您可以选择在/spec/support/helpers.rb
处创建文件:
RSpec.configure do |config|
config.include Omniauth::Mock
config.include Omniauth::SessionHelpers, type: :feature
end
OmniAuth.config.test_mode = true
或者将这些相同的行添加到/spec/rails_helper.rb
。
我在/spec/support/helpers.rb
创建了新文件。为了完成这项工作,我需要在文件顶部添加行require_relative 'helpers/omniauth'
。 Rails Composer应用程序还添加helpers.rb
文件而不是编辑rails_helper.rb
,因此需要相同的行才能使rspec成功运行该应用程序。