1

次のようなコードがあります。

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

スペック中に外部シェル コマンドが実行されないようにバックティック メソッドをモックしましたが、$?グローバル変数を設定してスペックの失敗側を実行する方法が見つかりませんでした。

4

1 に答える 1

1

さまざまな条件をテストできるように、予想される種類のエラーを返すスクリプトを作成する必要があるかもしれません。例えば:

#!/usr/bin/env ruby

exit(ARGV[0].to_i)

次に、トラップする終了コードを渡すことができます。

呼び出しをモックする代わりに、別のスクリプトを完全に実行して、エラーを正しく処理することを検証します。

于 2012-10-19T14:34:16.253 に答える