2015-02-11 36 views
1

所以我「米不是太熟悉,紅寶石或rspec的,我有一個rspect測試,這裏是它的代碼片段:Rspec的測試NameError:未初始化不斷試圖把一類爲RSpec的測試

describe 'thingMagic' do 
    let(:tester) { testClass.testing } 
    it { expect(tester).to be whatever doesn't matter at this point 

所以我寫了一個名爲testClass有一個名爲它testing方法類這裏是什麼樣子:

class testClass 
    def testing 
    return pass_test 
    end 
end 

我試圖找出當我運行RSpec的是與此錯誤失敗控制檯:

Failure/Error: let(:tester) { testClass.testing } 
    NameError: 
     uninitialized constant testClass 

我似乎無法弄清楚如何初始化這個類。是否有一個文件,我必須修改rspec給它一個相對路徑來這個文件?

+0

它八九不離十做。我發現我需要一個require_relative'。參考:http://ruby.about.com/od/faqs/qt/Nameerror-Uninitialized-Constant-Object-Something.htm – adbarads 2015-03-06 18:36:09

回答

1

經過大量的谷歌搜索和純粹的運氣。我瞭解到: 我需要:

require_relative '<path_to_file>' 

我補充說,到spec.rb文件之後。我重新運行了rspec測試,並開始工作。

這裏是很好的文檔,基本上讓我意識到我錯過了: http://ruby.about.com/od/faqs/qt/Nameerror-Uninitialized-Constant-Object-Something.htm

+0

我已upvoted這是因爲它的工作原理,雖然一般來說這是最後的手段。錯誤通常意味着你的rspec配置缺少一些東西。 – Obromios 2017-01-29 20:10:04