« ちょっっっwww H×H連載再開wwww | トップページ | Rubyでエラーハンドリング »

2007.08.31

Rubyでexitの挙動をテストする方法

処理を中断させる役割を持つメソッドがあったとして、そのメソッドがきちんと処理を中断させてくれているかどうかをテストするにはどうしたらいいのだろうと悩んだ。
だって、処理を中断させちゃうからテストできないじゃーん、みたいな。

具体的にはこんなメソッド

def die
exit(1)
end


で、Rubyリファレンスマニュアル - 組み込み関数を見ていたら、exitはただ単に例外を発生させているだけらしい。
ということで、以下のようにテストを書いてうまくいった。もっといい方法はあるのかな?

begin
die
rescue SystemExit => e
assert_equal("exit", e.message)
end


--- 補足
[Ruby] 暴想: Rubyでexitの挙動をテストする方法 - Don'tStopMusic (2007-09-01)
あー、例が悪かった。
実際にテストしたかったのはdieメソッド中でexit以外に行っている処理の実行内容。

def die
hogehoge
.....
exit(1)
end

もちろん、exitだけさせるメソッドは作ったりしないから、プログラムの後始末をして、最後に終了させる。例えば、処理で使っていた一時ファイルの削除とか、ログへの書き出しとか。その後始末がちゃんとできているかどうかをテストしたいけど、exitが含まれているとうまくいかないから、という感じ。
begin
die
rescue SystemExit => e
# hogehogeがうまく動作しているかをチェック
end


↓1日1ポチッとをお願いします!励みになります!
ポチっとよろしく!

|

« ちょっっっwww H×H連載再開wwww | トップページ | Rubyでエラーハンドリング »

ruby」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/22269/16300335

この記事へのトラックバック一覧です: Rubyでexitの挙動をテストする方法:

» 暴想: Rubyでexitの挙動をテストする方法 [Don'tStopMusic]
例外のテストには assert_raise を使います。 [続きを読む]

受信: 2007.09.01 00:44

« ちょっっっwww H×H連載再開wwww | トップページ | Rubyでエラーハンドリング »