Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
次のようなコードがあります。
output = `shell-command-to-run` unless $?.success? raise "Failure running shell command!" end
スペック中に外部シェル コマンドが実行されないようにバックティック メソッドをモックしましたが、$?グローバル変数を設定してスペックの失敗側を実行する方法が見つかりませんでした。
$?
さまざまな条件をテストできるように、予想される種類のエラーを返すスクリプトを作成する必要があるかもしれません。例えば:
#!/usr/bin/env ruby exit(ARGV[0].to_i)
次に、トラップする終了コードを渡すことができます。
呼び出しをモックする代わりに、別のスクリプトを完全に実行して、エラーを正しく処理することを検証します。