test case
一个 TestCase 的实例就是一个测试用例。什么是测试用例呢?就是一个完整的测试流程,包括测试
前准备环境的搭建(setUp),实现测试过程的代码(run),以及测试后环境的还原(tearDown)。元测试(unit
test)的本质也就在这里,一个测试用例是一个完整的测试单元,通过运行这个测试单元,可以对某一个
功能进行验证。

test suite
对一个功能的验证往往是需要多测试用例的,可以把多的测试用例集合在一起执行,这就产生了测试
套件 TestSuite 的概念,它用来组装单个测试用例,而且 TestSuite 也可以嵌套 TestSuite。
可以通过 addTest 加载 TestCase 到 TestSuite 中,再返回一个 TestSuite 实例。

test runner
TextTestRunner 是来执行测试用例的,其中的 run(test)用来执行 TestSuite/TestCase。测试的结果
会保存到 TextTestResult 实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息。

test fixture
对一个测试用例环境的搭建和销毁,是一个 fixture,通过覆盖 TestCase 的 setUp()和 tearDown()
方法来实现。这个有什么用呢?比如说在这个测试用例中需要访问数据库,那么可以在 setUp()中建立数
据库连接以及进行一些初始化,在 tearDown()中清除在数据库中产生的数据,然后关闭连接。注意 tearDown
的过程很重要,要为以后的 TestCase 留下一个干净的环境。

一个单元测试的例子:

#coding=utf-8
from count import Count
import unittest
class TestCount(unittest.TestCase):
def setUp(self):
self.j = Count(2,3)
def test_add(self):
self.add = self.j.add()
self.assertEqual(self.add,5)
def tearDown(self):
pass if __name__ == '__main__':
# 构造测试集
suite = unittest.TestSuite()
suite.addTest(TestCount("test_add"))
# 执行测试
runner = unittest.TextTestRunner()
runner.run(suite)

首先调用 unittest 所提供的 TestSuite()类 ,通过它下面的 addTtest()方法来添加 TestCount 类下面的 test_add 测试方法。
接着调用 TextTestRunner()类,通过它下面的 run()方法来运行 suite 所组装的测试用例。

unittest 框架的 TestCase 类提供一些方法用检查比较和报告失败:

最新文章

  1. com.panie 项目开发随笔_功能任务设计(2016.12.28)
  2. 阿里云推荐码 hut29f
  3. 自己用C语言写单片机PIC18 serial bootloader
  4. 关于Kb/s,KB/s的一些知识
  5. 百度地图API说明
  6. hdu1864
  7. 数往知来 ASP.NET 表单的提交_url传值_重定向 <十八>
  8. ios如何判断键盘是否已经显示
  9. jchat:linux聊天程序3:服务器
  10. iOS学习之Runtime(二)
  11. C3P0 APPARENT DEADLOCK
  12. Linux内核源码分析之调度、内核线程模型 And Centos7.2's Kernel Resource Analysis
  13. 函数调用堆栈及活动记录 堆栈溢出 stack overflow
  14. idea安装破解永久有效
  15. JFinal的启动源码解读
  16. 【PyQt5 学习记录】001:第一个界面
  17. .NET数据库编程求索之路--1.引子
  18. 20145209刘一阳《网络对抗》Exp2 后门原理与实践
  19. 【map】【分解质因数】CDOJ1572 Espec1al Triple
  20. 使用C语言扩展Python提供性能

热门文章

  1. Docker从容器内拷贝文件到主机上
  2. shell学习及脚步编写
  3. PHP中奖概率写法
  4. BOOT目录磁盘占用满处理
  5. 2019.12.12 Java的多线程&匿名类
  6. python爬虫-豆瓣电影的尝试
  7. visual studio code编辑python文件
  8. AJAX一些注释掉的语句
  9. ELK基础配置
  10. 禁止服务向 eureka 上注册配置文件