1、为什么要做单元测试

  • 单元测试更细致、更有针对性
  • 单元测试能测试到很多系统测试无法达到的测试
  • 单元测试是在编码中做的测试,发现问题方便修改,而系统测试的问题修改成本可能变高
  • 单元测试是自动化测试

2、单元测试实例操作

  1、定义一个PC类,里面有div方法

 class PC(object):
def add(self, x, y):
return x + y
def ub(self, x, y):
return x - y
def mul(self, x, y):
return x * y
# def div(self, x, y):
# return x / y
def div(self, x, y):
try: # 错误捕捉
return float(x)/float(y) #将x y转换为浮点型后相除
except:
return None #如果无法转换或不能相除,则返回none
####################################################################
if __name__ == '__main__':
pc = PC()
print(pc.add(100, 2345))
print(pc.sub(100, 2345))
print(pc.mul(100, 2345))
print(pc.div(100, 4))

  2、创建一个单元测试用例类,继承自unittest.TestCase类

 import unittest

 class MyTestCase(unittest.TestCase):
def test_something(self):
self.assertEqual(True, False) if __name__ == '__main__':
unittest.main()

  3、定义setUp,tearDown方法,setUp里面实例化了被测类,并生成一个成员变量

 @classmethod
def setUpClass(cls):
def setUp(self):
def test_01(self):
....
def tearDown(self):
@classmethod
def tearDownClass(cls):

  4、写每一个测试用例:一个有效等价类用例、多个无效等价类用例

  5、a)传入不同的参数以调用被测方法;

     b)用断言语句验证返回结果

3、python单元测试框架原则:

  1. 继承自unittest.TestCase
  2. 以test'开头的方法就是一个测试用例
  3. 每个测试用例执行之前会执行setUp,执行完会执行tearDown
  4. 有一系列的断言语句验证测试结果:assertEqual,assertIn等
  5. setUpClass、tearDownClass:所有用例执行前执行一次setUpClass,后执行一次tearDownClass

4、单元测试setUp()和tearDown()

setUp:表示前置条件,它在每一个用例执行之前必须会执行一次

setUp可以理解为我们需要自动化测试时,需要打开网页窗口,输入对应测试地址,这一些属于前置条件。

tearDown:表示释放资源,它在每次用例执行完之后会执行一次

tearDown可以理解为我们测试完毕后,需要关闭浏览器。

运行的顺序:

1. 每次执行函数方法时,必须先执行一次setUp()函数,执行完一个函数方法后,必须再执行一次tearDown()函数

2. 执行函数的时候有序号时,例如testxx1,testxx2 会根据序号来进行执行

3. 当函数方法不是以test开头是,不执行该方法。

单元测试框架 python的更多相关文章

  1. Python单元测试框架之pytest -- 断言

    对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...

  2. Python自动单元测试框架

    原文链接:http://www.ibm.com/developerworks/cn/linux/l-pyunit/ 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写 ...

  3. [转] Python自动单元测试框架

    一.软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施.正像软件熵(software ...

  4. [译]PyUnit—Python单元测试框架(1)

    1. 原文及参考资料 原文链接:http://docs.python.org/2/library/unittest.html# 参考文档: http://pyunit.sourceforge.net/ ...

  5. Python Unittest 自动化单元测试框架Demo

    python 测试框架(本文只涉及 PyUnit) https://wiki.python.org/moin/PythonTestingToolsTaxonomy 环境准备 首先确定已经安装有Pyth ...

  6. Python单元测试框架

    目录 概况 系统要求 使用PyUnit构建自己的测试 安装 测试用例介绍 创建一个简单测试用例 复用设置代码:创建固件 包含多个测试方法的测试用例类 将测试用例聚合成测试套件 嵌套测试用例 测试代码的 ...

  7. python之使用单元测试框架unittest执行自动化测试

    Python中有一个自带的单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 单元测试框架即一堆工具的集合. 在说unittest ...

  8. Python单元测试框架unittest

    学习接口自动化测试时接触了unittest单元测试框架,学习时参照了虫师编写的<selenium2自动化测试实战>,个人觉得里面讲的例子还比较容易理解的. 一.基础 1.main()和框架 ...

  9. 【python接口自动化框架-unittest】【一】unittest单元测试框架概念

    一.unittst单元测试框架 概念参考:https://docs.python.org/2/library/unittest.html 使用方法:import unittest (引入unittes ...

随机推荐

  1. Python生成测试数据-Faker(非LOL选手-李相赫)

    Faker介绍 官方文档:https://faker.readthedocs.io/en/master/ Faker is a Python package that generates fake d ...

  2. Python3,逻辑运算符

    优先级 ()>not>and>or 1.or 在python中,逻辑运算符or,x or y, 如果x为True则返回x,如果x为False返回y值.因为如果x为True那么or运算 ...

  3. 痞子衡嵌入式:了解i.MXRTxxx系列ROM API及其与i.MXRT1xxx系列的差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRTxxx系列ROM API设计细节. 痞子衡之前写过两篇文章 <利用i.MXRT1xxx系列ROM提供的FlexSPI ...

  4. RIPS源码阅读记录(二)

    Author: tr1ple 这部分主要分析scanner.php的逻辑,在token流重构完成后,此时ini_get是否包含auto_prepend_file或者auto_append_file 取 ...

  5. Elasticsearch第三篇:查询详解

    从第一篇开始,我用的ES版本就是7.8.0的,与低版本略有不同,不同点可以参考官方介绍,最大的不同就是抛弃 type 这一概念,为了方便测试,首先建立一个学生成绩的索引库(在建立的同时,规定字段类型, ...

  6. 2020-07-28:已知sqrt (2)约等于 1.414,要求不用数学库,求sqrt (2)精确到小数点后 10 位。

    福哥答案2020-07-28: 1.二分法.2.手算法.3.牛顿迭代法.基础是泰勒级数展开法.4.泰勒级数法.5.平方根倒数速算法,卡马克反转.基础是牛顿迭代法. golang代码如下: packag ...

  7. Webpack file-loader 和 url-loader

    二者最好只选择一个来进行对文件的打包,防止有冲突出现导致图片加载失败 如果相对不同大小的问题选择不同的loader,可以在url-loader的fallback属性指定不满足条件时的loader { ...

  8. 导出Excel文件(项目中会遇到很多将一些数据导出Excel或者et)

    最近在项目中,遇到一些需求,就是将数据导出来,以Excel文件为主:就自己简单的做一些demo:供初学者来学习: // 定义一个保存文件的路径位置 SaveFileDialog dlgPath = n ...

  9. vue-cli的安装及版本查看/更新

    vue-cli的安装及版本查看更新 vue-cli安装 npm install vue-cli -g vue-cli的版本查看 vue -V vue-cli的3.0+以后使用的不是vue-cli了,如 ...

  10. JDBC理论知识

    JDBC理论知识 JDBC基础 JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统.通用的SQL数据库存取和操作的公共接口(一组API), 定义了用来访问数 ...