如何在rspec中验证退出值?

Tra*_*ear 2 ruby rspec

我有一种方法,有时会打电话exit(numeric_value).

rspec是否可以验证在调用方法时,进程是否以正确的值退出?

我看过其他这些帖子,但他们没有回答这个具体问题.

sha*_*zhu 8

给出样本ruby代码:

def it_will_exit
  puts "before exit"
  exit(false)
  puts "never get here"
end
Run Code Online (Sandbox Code Playgroud)

rspec测试用例可以是:

it "it must exit" do
  expect { it_will_exit }.raise_exception(SystemExit)
end

it "the exit value should be false" do
  begin
    it_will_exit
  rescue SystemExit=>e
    expect(e.status).to eq(1)
  end
end
Run Code Online (Sandbox Code Playgroud)