状況は単純です。私はこのようなモジュールを持っています(first.rb):
def ret_s(l)
return "one" if l == 1
return "twoe" if l == 2
return "threee" if l == 3
end
def ret_l(str)
return 1 if str == "one"
return 2 if str == "two"
return 4 if str == "three"
end
およびテスト クラス (TestFist.rb):
require 'test/unit'
require './first'
class TestFirst < Test::Unit::TestCase
def test_fist
assert_equal("one",ret_s(1))
assert_equal("two",ret_s(2))
assert_equal("three",ret_s(3))
end
def test_second
assert_equal(1,ret_l("one"))
assert_equal(2,ret_l("two"))
assert_equal(3,ret_l("three"))
end
end
このテストを実行すると、なぜ次のような答えが得られるのでしょうか。
$ ruby TestFirst.rb
Run options:
# Running tests:
FF
Finished tests in 0.001000s, 2000.0000 tests/s, 5000.0000 assertions/s.
1) Failure:
test_fist(TestFirst) [TestFirst.rb:9]:
<"two"> expected but was
<"twoe">.
2) Failure:
test_second(TestFirst) [TestFirst.rb:17]:
<3> expected but was
<4>.
2 tests, 5 assertions, 2 failures, 0 errors, 0 skips
最後の行は、私が何か間違ったことをしていると思わせます。私は次のようなものを期待します:
2 回のテスト、6 回のアサーション、3 回の失敗、0 回のエラー、0 回のスキップ
いいえ
2 回のテスト、5 回のアサーション、2 回の失敗、0 回のエラー、0 回のスキップ