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什么都不做,如果失败,便会引发异常,测试也就此失败)

这只是一个正面的测试,传递的是一个思想,完整的应该还包括负面测试和完备性检测。