フォーチュンサモナーズ
«前の日記(2007-08-31) 最新 次の日記(2007-09-04)» 編集

Don'tStopMusic

2003|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|12|
2006|01|02|03|04|05|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|08|09|10|

カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年

知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。


2007-09-01

_ [Ruby] 暴想: Rubyでexitの挙動をテストする方法 このエントリーを含むブックマーク

例外のテストには assert_raise を使います。

test_die.rb

require 'test/unit'
 
def die
  exit(1)
end
 
class TC_die < Test::Unit::TestCase
  def test_die
    assert_raise(SystemExit) do
      die
    end
  end
end

実行

$ ruby -v test_die.rb
ruby 1.8.6 (2007-06-07 patchlevel 36) [i686-linux]
Loaded suite test_die
Started
.
Finished in 0.001641 seconds.
 
1 tests, 1 assertions, 0 failures, 0 errors

そういえば、メソッド内で exit するという発想はなかったですね。 私はといえば、クラスのメソッドの中では定義した例外を上げて、そのクラスを使っているコマンドの方で例外を捕捉して改めて exit させてます。普通どうしてるんでしょうかね。↓例

class FooError < StandardError; end
class Foo
  def bar
    raise FooError
  end
end
 
begin
  foo = Foo.new
  foo.bar
  ...
rescue FooError
  exit(false)
end
本日のTrackBacks(全1件) []
_ 暴想:Rubyでエラーハンドリング (2007-09-01 01:39)

なんとなく、MTやperl、CPANの中で生活していたせいか、Class::ErrorHandlerっぽいことをRubyでもやっていることが多いんだけど、rai


最近のコメント:

  1. だて (09-16)
  2. ささだ (09-14)
  3. うう〜〜〜ん (09-12)

RSS
Creative Commons License
This work is licensed under a Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).