很多人在学编程时,觉得ref="/tag/192/" style="color:#479099;font-weight:bold;">测试是件麻烦事。其实写 Ruby 单元测试没那么难,就像你买新电器前先试试开关能不能亮灯一样,程序也得先验验是不是正常工作。
用 MiniTest 写个简单的测试
Ruby 自带 MiniTest,不用额外安装就能上手。比如你写了个算面积的方法:
def calculate_area(length, width)
length * width
end你可以给它写个测试,看看结果对不对:
require 'minitest/autorun'
class TestArea < Minitest::Test
def test_calculate_area
result = calculate_area(4, 5)
assert_equal 20, result
end
end运行这个文件,如果输出中显示“1 runs, 1 assertions”,说明测试通过了,就像你按下电灯开关,灯亮了,心里踏实。
换个场景:验证用户输入
假设你在写一个控制智能家居温度的脚本,需要判断温度是否合理。你写了这样一个方法:
def valid_temperature?(temp)
temp.between?(18, 30)
end对应的测试可以这样写:
require 'minitest/autorun'
class TestTemperature < Minitest::Test
def test_valid_temperature
assert valid_temperature?(22)
refute valid_temperature?(35)
refute valid_temperature?(10)
end
end这样每次改完代码跑一遍,就知道有没有不小心把合理范围写错。
测试不是为了应付检查,而是让你改代码时更有底气。就像你换了插座线路,总得拿个电笔测一下通不通。Ruby 单元测试就是程序员的电笔。