【发布时间】:2014-08-17 11:32:57
【问题描述】:
我有一个从 CLI 触发的方法,该方法具有一些明确退出或中止的逻辑路径。我发现在为此方法编写规范时,RSpec 将其标记为失败,因为出口是异常。这是一个简单的例子:
def cli_method
if condition
puts "Everything's okay!"
else
puts "GTFO!"
exit
end
end
我可以使用 should raise_error(SystemExit) 将规范包装在 lambda 中,但这会忽略块内发生的任何断言。需要明确的是:我不是在测试出口本身,而是在它之前发生的逻辑。我该如何指定这种方法?
【问题讨论】:
-
想要测试“GTFO!”正在打印吗?
-
是的,在这个简化的例子中。不过,假设 else 中有任意代码。