Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

Ruby を 256 倍使うための本 極道編のまとめ (5)

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