为什么要测试
- 程序开发流程一般阶段:需求分析、设计阶段、实现阶段、测试阶段
- 测试阶段是通过人工或自动运行来测试某些功能。目的为了检验其是否满足需求,以弄清楚预期结果和实际结果之间的差别
测试分类
- 单元测试:对单独的代码块(函数、类)分别进行测试,以保证其的稳定性
- 集成测试:对大量的程序单元的协同工作情况做测试
- 系统测试:同时对整个系统的正确性进行检查,而不是针对独立的片段
什么是单元测试
- 在实际开发中,代码通过编译,只是说明它的语法正确,功能实现不能保证。因此在完成某些功能后,为了检验是否满足程序的需求。可以通过编写测试代码,模拟程序运行过程,检验功能代码是否符合预期
- 单元测试实际上就是一些“ 断言 (assert)”代码
常用的断言方法
方法 |
功能 |
assertEqual |
如果两个值相等,则pass |
assertNotEqual |
如果两个值不相等,则pass |
assertTrue |
判断bool值为True,则pass |
assertFalse |
判断bool值为False,则pass |
assertIsNone |
不存在,则pass |
assertIsNotNone |
存在,则pass |
基本写法
- 先定义一个类,继承自unittest.TestCase
import unittest
class TestClass(unitest.TestCase)
pass
import unittest
class TestClass(unitest.TestCase)
pass
# 该方法会首先执行,方法名为固定写法
def setUp(self):
pass
# 该方法会在测试代码执行完后执行,方法名为固定写法
def tearDown(self):
pass
import unittest
class TestClass(unitest.TestCase)
pass
# 该方法会首先执行,方法名为固定写法
def setUp(self):
pass
# 该方法会在测试代码执行完后执行,方法名为固定写法
def tearDown(self):
pass
# 测试代码
def test_app_exists(self):
pass