2016-03-10 90 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成功運行該應用程序。

相關問題