unittest 简单实现 pyunit 单元测试
废话不多说,直接上代码:
一、Roman函数为所有 1 到 50 的整数返回罗马字表示。
Roman.py # -*- coding: utf-8 -*- def toRoman(intdata): knownValues = dict(( (1, 'I'),(2, 'II'),(3, 'III'), (4, 'IV'),(5, 'V'),(6, 'VI'),(7, 'VII'), (8, 'VIII'),(9, 'IX'),(10, 'X'),(50, 'L'),)) return knownValues[intdata]
二、TestRoman.py 来对其实现单元测试。
TestRoman.py # -*- coding: utf-8 -*- import unittest import roman class KnownValues(unittest.TestCase): knownValues = ( (1, 'I'), (3, 'III'), (4, 'IV'), (5, 'V'), (7, 'VII'), (8, 'VIII'), (10, 'X'), (50, 'L'),) def testToRomanKnownValues(self): for integer,numeral in self.knownValues: result = roman.toRoman(integer) self.assertEqual(numeral,result) if __name__ == "__main__": unittest.main()
Ps: (通过assertEqual对其返回结果进行检查,如果成功assertEqual什么都不做,如果失败,便会引发异常,测试也就此失败)
这只是一个正面的测试,传递的是一个思想,完整的应该还包括负面测试和完备性检测。