何为单元测试:
单元测试专注于小块(单元)的代码,一般是单个方法或方法中的几行,这和其他的将整个系统视为一体的测试形式区别开来.
12.1 Test::Unit框架
1. 它提供了一种表示单个测试的方式
2. 它提供了一个框架来组织测试.
3. 它提供了灵活的方式来调用测试
12.1.1 断言==预期的结果
假设我们可以使用Test::Unit重写之前对于Roman类的测试.代码如下:
class Roman
MAX_ROMAN = 4999
def initialize( value )
if value <= 0 || value > MAX_ROMAN
fail "Roman values must be > 0 and <= #{ MAX_ROMAN }"
end
@value = value
end
FACTORS = [ [ "m", 1000 ], [ "cm", 900 ], [ "d", 500 ], [ "cd", 400 ],
[ "c", 100 ], [ "xc", 90 ], [ "l", 50 ], [ "xl", 40 ],
[ "x", 10 ], [ "ix", 9 ], [ "v", 5 ], [ "iv", 4 ],
[ "i", 1 ] ]
def to_s
value = @value
roman = ""
for code, factor in FACTORS
count, value = value.divmod( factor )
roman << code unless count.zero?
end
roman
end
end
require 'test/unit'
class TestRoman < Test::Unit::TestCase
def test_simple
assert_equal( "i"…………………………………………………………………………