单元测试
import roman1
import unittest
class KnownValues(unittest.TestCase): ①
known_values = ( (1, 'I'),
(2, 'II'),
(3, 'III'),
(4, 'IV')) ②
def test_to_roman_known_values(self): ③
'''to_roman should give known result with known input'''
for integer, numeral in self.known_values:
result = roman1.to_roman(integer)
self.assertEqual(numeral, result)
if __name__ == '__main__': ⑥
unittest.main() ⑦
①测试用例类需要成为unittest模块的TestCase类的子类,TestCase提供了很多测试特定条件的方法
②测试用list
③每个独立的测试都有自己的不含参数的没有返回值的方法。方法不抛出异常正常退出认为测试通过,抛出异常即失败
⑥一个.py文件,如果是自身在运行,那么__name__属性值就是'__main__'
⑦执行unittest.main(),该方法会执行类中每一个方法(每一条测试用例),唯一的要求就是测试类继承自unittest.TestCase
定义错误类
class OutOfRangeError(ValueError): ①
pass ②
① | 异常也是类。 该异常继承了内建的 ValueError 异常类。(它同样也可以继承于基类 Exception ),只要它正确就行了。 |
② | 事实上,异常类可以不做任何事情,但是至少添加一行代码使其成为一个类。pass 的真正意思是什么都不做,但是它是一行Python代码,所以可以使其成为类。 |