以前也经常做Java、Go 的单元测试的,但一直没系统学习过,这次在系统化学习自动化测试,正好有个python 的单元测试用例,赶紧来尝试一下。
我们对于单元测试的一般定义是对软件中的最小测试单元进行的测试,最小可测试单元可以是一个函数、一个方法、一个类,或者一个很小的模块。单元测试往往由开发人员自己写测试代码来实现,对于一个函数、方法或者一个类,开发人员会设计一些测试用的数据,并且构造一段代码,执行并检查输出。一个矩形类的示例如下:
class Rect: def __init__(self, x=1, y=2): self.x = x self.y = y def area(self): return self.x * self.y def perimeter(self): return 2 * (self.x + self.y)
现在很多编程语言的开工具包都包含了单元测试的模块,以帮助开发人员建立标准的单元测试模块。比如 Python 就提供了 UnitTest 的包,让开发者可以方便地构建单元测试用例。下面是一个使用 UnitTest 测试的示例:
import unittest from test.chapter1.rect import Rect class TestRect(unittest.TestCase): def setUp(self): self.rect = Rect() def testArea(self): self.rect.x = 10 self.rect.y = 5 tmp = self.rect.area() self.assertEqual(self.rect.area(), 50) def testPerimeter(self): self.rect.x = 10 self.rect.y = 5 self.assertEqual(self.rect.perimeter(), 30) def tearDown(self): self.rect = None if __name__ == '__main__': unittest.main()
执行结果如下: