RUnit には、 c2t.rb という便利なツールがあって、テストコードの雛形を作ってくれる。具体的には、第一引数をクラス名と見做して、そのクラスのテストクラス(中身は空)が出力される。
$ c2t.rb Hoge require 'runit/testcase' require 'runit/cui/testrunner' class TestHoge < RUNIT::TestCase end if $0 == __FILE__ if ARGV.size == 0 suite = TestHoge.suite else suite = RUNIT::TestSuite.new ARGV.each do |testmethod| suite.add_test(TestHoge.new(testmethod)) end end RUNIT::CUI::TestRunner.run(suite) end
さらに、 Hoge.rb の中身を見て、書いてあるメソッド用のテストメソッドの雛形も用意する、ということもできる。 '$ c2t.rb Hoge Hoge.rb > TestHoge.rb' という感じで、第二引数に Ruby のファイル名を指定すればよい。
これで id:satob:20050613:p5 の問題も解決できるし、 'ruby TestHoge.rb hoge' とすれば hoge メソッドだけテストする、ということもできる。
便利だと思うんだけど、ただ Test::Unit になったらなくなっちゃったみたい。
あと、 Ruby 1.8 の場合(RubyUnit でなくて Test::Unit の場合)は、次を参考にして修正すればいいはず。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=Test%3A%3AUnit%B0%DC%B9%D4%A5%AC%A5%A4%A5%C9