Railsapp OAuth的教程,rspec的 “未初始化常量” 错误
问题描述:
在介绍之后,我在路径中创建的文件omniauth.rbRailsapp OAuth的教程,rspec的 “未初始化常量” 错误
规格/支持/助理/ 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的作曲应用程序安装导轨,omniauth。当我运行“rspec”这个应用程序,我得到完全相同的错误。
答
在本教程的一个点,你是在给定/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
创建了新文件。为了使这项工作,我需要在文件的顶部添加行。 Rails Composer应用程序还添加了helpers.rb
文件,而不是编辑rails_helper.rb
,因此需要使用相同的行才能使rspec成功运行该应用程序。
这个答案可能有帮助:http://*.com/questions/31232281/how-to-get-rid-of-uninitialized-constant-omniauth-nameerror。因人而异。 – orde
哪个教程? – fabersky
我知道这似乎很模糊,但教程实际上被称为“Railsapps”。该网站在这里:https://tutorials.railsapps.org/ – wbruntra