【发布时间】:2013-12-11 08:50:37
【问题描述】:
我有一个方法有时会调用exit(numeric_value)。
rspec 是否可以验证在调用方法时,进程是否以正确的值退出?
我看过这些其他帖子,但他们没有回答这个具体问题。
【问题讨论】:
-
您需要将
exit存根,否则当遇到该行时,您的程序实际上会退出。不过,你真的不应该只是那样救助。改为引发异常。 -
@meagar 我想用 rspec 测试的 ruby 脚本用于检查退出值并采取相应措施的外部框架 (Sensu) 的上下文中。所以在这种情况下似乎需要调用
exit。 -
啊,我没有意识到 Ruby 中的
exit实际上确实引发了异常。您的问题是您发布的第一个链接的副本,答案对您来说很好。只需捕获SystemExit异常。lambda { whatever }.should raise_error SystemExit,或者只是自己捕获SystemExit异常并检查捕获的异常的.status。 ` -
@meagar 我知道我可以捕获 SystemExit 异常。我不知道如何解决的问题是:如何验证我们是否以状态码 1 或 2 退出。
-
正如我所说:测试您捕获的异常的
.status。