我正在尝试为脚本接收的命令行参数指定行为,以确保所有验证都通过.我的一些命令行参数将导致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
Run Code Online (Sandbox Code Playgroud)
该exit方法干净利落地阻止RSpec验证测试(我得到"SystemExit:exit").
我也尝试过,mock(Kernel)但是这也没有按照我的意愿工作(我没有看到任何明显的区别,但这可能是因为我不确定如何模拟内核并确保在我的内核中使用了模拟的内核Something类).
我有一种方法,有时会打电话exit(numeric_value).
rspec是否可以验证在调用方法时,进程是否以正确的值退出?
我看过其他这些帖子,但他们没有回答这个具体问题.