test-unitについて
今回はRubyのgem
のtest-unit
を動かしてみたので、それのアウトプットを自分用に残しておきます。
test-unit
の使い方は、
require 'test/unit' class hoge < Test::Unit::TestCase end
のように、requireでtest/unit
を呼び出し、テストコードを書くクラスにTest::Unit::TestCase
を継承させることで使用することができます。
では、チュートリアルはここまでで、実際に参考サイトを元にとりあえず、動かしてみました。
- サンプルコード
require 'test/unit' class Sample def hello 'Hello, world!' end end class TestSample < Test::Unit::TestCase # assert_equalを使ってみた def test_hello assert_equal 'Hello, world!', Sample.new.hello end # assert_trueを使ってみた def test_hello_true assert_true('Hello, world!' == Sample.new.hello) end end
以下の出力結果はわざと警告が出るように、helloクラスの'Hello, world!'
をコメントアウトしました。
sample.rb:12:in `test_hello' <"Hello, world!"> expected but was <nil> diff: ? "Hello, world!" ? ni Failure: test_hello(TestSample)
すると、assert_equal
の場合はこのような警告だったのに対し、assert_ture
の場合は、以下のようにfalseであることしか示しませんでした。
Failure: test_hello_true(TestSample): <true> expected but was <false>
つまり、同じ表現でも何がダメなのかをしっかり出力してもらわなければ困るときは、assert_equalの方が良いということが分かりました。
このように、テストを書く上で何を出力するのかで、テストの書き方を工夫する必要があることが学べました。