【テストプログラムを作成1】test/unit
作成したじゃんけんプログラムをテストしたい。
エラーに次ぐエラーで勉強になりました
test/unitというgemを使うらしい。これは初めて使うのでインストールされているか確認。
$gem list test *** LOCAL GEMS *** minitest (5.8.5) test-unit (3.1.5)
ありますね。
でもtest/unitとtest-unitは違うし、これでいいのか?
先輩さん曰くtest-unitはrequireする際にはrequire 'test/unit'で問題ないとのこと。
ググっても2種類出て来るので混乱しました。
本題の、test/unit (これだとエラー出ます)
require 'test/unit' require_relative 'janken' class TC_janken < Test::Unit::TestCase def setup @obj = Janken.new end # def teardown # end def test_janken assert_equal("janken",@obj) end end
setup jankenクラスのインスタンスを生成
teardown 今回は使っていないが、setupのあとに呼ばれる。
test_janken テストメソッド。 テストメソッドはtest_で始める必要がある。
assert_equal("janken",@obj) ここで比較している。 文字列とオブジェクトを比較していますから、これだとエラーです。
結局・・・
色々(追記)あってこうなりました。
require 'test/unit' require_relative 'janken2' class TC_janken < Test::Unit::TestCase def setup @judge = Judge.new end # def teardown # end def test_janken1 assert_equal("勝ち",@judge.judgement("g","c")) assert_equal("あいこ",@judge.judgement("g","g")) assert_equal("負け",@judge.judgement("g","p")) assert_equal("勝ち",@judge.judgement("c","p")) assert_equal("あいこ",@judge.judgement("c","c")) assert_equal("負け",@judge.judgement("c","g")) assert_equal("勝ち",@judge.judgement("p","g")) assert_equal("あいこ",@judge.judgement("p","p")) assert_equal("負け",@judge.judgement("p","c")) end end