2016-03-10 70 views
0

在介绍之后,我在路径中创建的文件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”这个应用程序,我得到完全相同的错误。

+1

这个答案可能有帮助:http://stackoverflow.com/questions/31232281/how-to-get-rid-of-uninitialized-constant-omniauth-nameerror。因人而异。 – orde

+0

哪个教程? – fabersky

+0

我知道这似乎很模糊,但教程实际上被称为“Railsapps”。该网站在这里:https://tutorials.railsapps.org/ – wbruntra

回答

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创建了新文件。为了使这项工作,我需要在文件的顶部添加行​​。 Rails Composer应用程序还添加了helpers.rb文件,而不是编辑rails_helper.rb,因此需要使用相同的行才能使rspec成功运行该应用程序。

相关问题