いまごろ Ruby Test::Unit を使ってみた
Ruby のテストを書いたことがなかったので書いてみた。使用したバージョンはこちら。
ruby 1.8.7 (2009-12-24 patchlevel 248) [i386-mswin32]
Ruby のテストには標準添付の Test::Unit を用いた。RSpec が流行っているみたいなのでこちらも併せてやろうかと思ったけど、とりあえず生、みたいな感じでとりあえず標準添付。
まずはテスト対象を作成。(dice.rb)
class Dice attr_accessor :face def initialize @face = 6 end def roll rand(@face) + 1 # さいころを1回振って出た目 end end
上のクラスをテストする。(test_dice.rb)
require 'test/unit' require 'dice.rb' class TC_Dice < Test::Unit::TestCase def setup @test = Dice.new end def test_roll result = @test.roll() assert (result <= @test.face and result >= 1), 'test_roll is failed.' end def test_face assert @test.face == 6, 'test_face is failed.' end end
テストプログラムを実行。
> ruby test_dice.rb Loaded suite test_dice Started .. Finished in 0.0 seconds. 2 tests, 2 assertions, 0 failures, 0 errors
最後の1行にテスト結果のステータスが出る。0 failures, 0 errors なら、テストはうまくいってる。この辺は JUnit とかと同じなのね。
つぎは RSpec にチャレンジしてみる予定。あくまで予定。