我正在尝试使用 RSpec 测试我的 Jenkins Ruby 插件。
我的电子邮件computerlistener.rb:
require 'net/smtp'
class EmailComputerListener
include Jenkins::Slaves::ComputerListener
def online(computer, listener)
[...]
end
end
我的电子邮件computerlistener_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]
所有文件都在同一个目录中,我一直在单独的电子邮件计算机侦听器上运行我的测试,并注释掉包含语句以使测试通过。但显然测试原始文件会更好。
编辑:测试不依赖于 Jenkins::Slaves::ComputerListener,它们也不应该,ComputerListener 是在我捆绑插件的 gem 中定义的。我要做的只是模拟这个文件,我不能require 'computerlistener'
在 EmailComputerListener 中添加一个,因为这样做可能会破坏插件。
谢谢。