いつでも発展途上

ITとゲーム漬けのシャチ。とくにブログのテーマはなく、メモ代わりに書いています。休眠気味。

いまごろ 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 にチャレンジしてみる予定。あくまで予定。