クラスTesterを実装するように要求します。クラスTesterは、クラスtestを受け取り、testという単語で始まるすべてのメソッドを実行します。Ruby Testerの作り方は?
class AssertionFailed < Exception
end
class TestCase
def setUp
end
def tierDown
end
def assertTrue(expresion)
if not expresion then
raise AssertionFailed.new(expresion.to_s + " is not true")
end
end
def assertEquals(result, expected)
if result != expected
raise AssertionFailed.new(result.to_s + " is not equal to " + expected.to_s)
end
end
end
class IntegerTest < TestCase
def setUp
@number = 1
end
def testSum
assertTrue(1 + @number == 2)
@number += 1
end
def testSub
assertTrue(2 - @number == @number)
end
def testMulByZero
assertEquals(@number*0, 1)
end
def testAddByZero
assertEquals(@number + 0, @number + 1)
end
end
Tester.test(IntegerTest)
例:
Tester.test(IntegerTest)
[*] testMulByZero failed: 0 is not equals to 1
[*] testAddByZero failed: 1 is not equals to 2
ヘルプ:反復処理可能モジュールのgrepの方法は、正規表現を受け取り、そしてその式に一致するすべての の要素を返します。演習のために、 でgrep(\ test *)を使用して、求められているメソッドを取得するメソッドのコレクション。
JFYI、testAddByZero' 'などのメソッド名が受け入れられた命名規則に準拠していません。慣習的な方法は 'test_add_by_zero'でしょう。一般的に、 'camelCase'はRubyで使われていません。 –