カテゴリ別 2003年 | 2004年 | 2005年 | 2006年 | 2007年 | 2008年
知り合いサイト: よんだもの / 暴想 / Linuxでやる夫 / 新宿Vipper / 僕だけが幸せになればいいのに。
例外のテストには assert_raise を使います。
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
なんとなく、MTやperl、CPANの中で生活していたせいか、Class::ErrorHandlerっぽいことをRubyでもやっていることが多いんだけど、rai
最近のコメント:
RSS
![]()
This work is licensed under a
Creative Commons License
(note: text only. w/o web design, citations, (re)distributed softwares).