2012-10-19 105 views
1

我有這樣一段代碼:

output = `shell-command-to-run` 
unless $?.success? 
    raise "Failure running shell command!" 
end 

我嘲笑了反引號的方法,以防止外部shell命令從期間我的規格運行,但我還沒有找到一種方法設置$?全局變量來執行規範的故障端。

回答

1

也許你應該有一個腳本,返回你期望發現的錯誤種類,以便測試各種條件。例如:

#!/usr/bin/env ruby 

exit(ARGV[0].to_i) 

然後,您可以傳入您想要陷入的退出代碼。

不是模擬調用,而是完全運行不同的腳本來驗證它是否正確處理錯誤。