【发布时间】:2010-12-01 14:52:27
【问题描述】:
我正在尝试为我的脚本接收的命令行参数指定行为,以确保所有验证都通过。我的一些命令行参数将导致abort 或exit 被调用,因为提供的参数丢失或不正确。
我正在尝试这样的东西,但它不起作用:
# something_spec.rb
require 'something'
describe Something do
before do
Kernel.stub!(:exit)
end
it "should exit cleanly when -h is used" do
s = Something.new
Kernel.should_receive(:exit)
s.process_arguments(["-h"])
end
end
exit 方法完全触发,阻止 RSpec 验证测试(我得到“SystemExit:exit”)。
我也尝试过mock(Kernel),但这也没有按我的意愿工作(我没有看到任何明显的区别,但这可能是因为我不确定如何准确地模拟内核并确保在我的Something 类中使用了模拟内核)。
【问题讨论】: