我正在嘗試使用RSpec測試我的Jenkins Ruby插件。
我emailcomputerlistener.rb:NameError:未初始化的常量,使用RSpec
require 'net/smtp'
class EmailComputerListener
include Jenkins::Slaves::ComputerListener
def online(computer, listener)
[...]
end
end
我emailcomputerlistener_spec.rb
require 'emailcomputerlistener'
require 'computer' # overloaded class for computer
require 'smtp' # overloaded smtp class
require 'computerlistener' # required?
describe EmailComputerListener do
before :each do
@ecl = EmailComputerListener.new
[...]
end
[tests]
end
當運行RSpec的,它說:
NameError: uninitialized constant EmailComputerListener::Jenkins
[row 3]
所有文件都在同一目錄中,我一直在在單獨的emailcomputerlistener上運行我的測試,並使用include聲明註釋掉,以使測試通過。但顯然測試原始文件會更好。
編輯:測試不依賴於Jenkins :: Slaves :: ComputerListener,也不應該是他們,ComputerListener是在我的捆綁插件的gem中定義的。我所要做的只是模擬這個文件,我不能在EmailComputerListener中添加require 'computerlistener'
,因爲這樣做可能會破壞插件。
謝謝。
這是一個很好的方式! – JonatanEkstedt 2012-03-16 11:58:40
Kan stolt meddela att du blivit tilldelad en down vote – JonatanEkstedt 2012-05-30 10:25:25