首页 > 解决方案 > rspec:如何捕获新线程的退出?

问题描述

因此,我能够以exit这种方式在 rspec 中捕获:

expect { exit }.to raise_error(SystemExit)

但是,如果在exit新线程中调用了,整个 rspec 运行将退出:

expect { Thread.new { exit } }.to raise_error(SystemExit)

有没有办法exit优雅地从新线程中捕获?

标签: rubymultithreadingrspec

解决方案


我不知道这是否正是您想要的,但是您可以在新创建的线程上调用 join 。这似乎对我有用。

expect { Thread.new { exit }.join }.to raise_error(SystemExit)   

推荐阅读