Unittest又名单元测试,主要用于测试自己写的代码的正确性和完备性,也方便自己和他人对代码的维护。在软件开发过程中,测试驱动开发的理念是一种好的开发习惯。
例如现在我们写了一个求绝对值的函数my_abs,存放在myAbs.py中
def my_abs(number):
if not (isinstance(number, int) or isinstance(number, float)):
raise ValueError("invalid value %s" % number)
else:
if(number >= 0):
return number
else:
return -number
此处的my_abs函数对参数做了检查,参数必须是一个数(python的数只有int和float型)。那么如果想要测试这个函数的正确性,我们需要写一个测试函数,用于测试函数的各个分支情况。
基于unittest的的测试代码如下:
import unittest
from myAbs import my_abs
class TestmyAbs(unittest.TestCase):
def test_positive(self):
self.assertEqual(my_abs(1), 1)
def test_zero(self):
self.assertEqual(my_abs(0), 0)
def test_negative(self):
self.assertEqual(my_abs(-1), 1)
def test_inputerror(self):
wit