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. 01-java开发环境配置

    1 JDK.JRE.JVM的关系 JDK: java开发工具包 JRE: java运行时环境 JVM: java虚拟机 2 JDK下载 方式一:官网 方式二:该链接提供jdk1.6 ,jdk1.7 , ...

  2. 【每日一个小技巧】Python | input的提示信息换行输出,提示信息用变量表示

    [每日一个小技巧]Python | input的提示信息换行输出,提示信息用变量表示 在书写代码的途中,经常会实现这样功能: 请输入下列选项前的序号: 1.选择1 2.选择2 3.选择3 在pytho ...

  3. 移动物体监控系统-sprint4嵌入式web服务器开发

    一.BOA嵌入式服务器的移植 step1:下载BOA服务器并解压,进入boa下面的src目录,执行./configure生成必须的配置文件以及Makefile step2:修改Makefile文件 c ...

  4. java中threadlocal的理解

    [TOC] #java中threadlocal的理解##一.threadlocal的生命周期和ThreadLocalMap的生命周期可以吧TreadLocal看做是一个map来使用,只不过这个map是 ...

  5. Java中的引用与ThreadLocal

    Java中的引用--强软弱虚 强引用 Object object = new Object(),这个object就是一个强引用.如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回 ...

  6. 初识HTML(二)

    目录 HTML表格 HTML列表 HTML表格 表格主要显示.展示数据. 表格基本语法:<table>定义一个表格,<tr>定义表格中的一行,<td>定义一行中的某 ...

  7. C#设计模式之17-中介者模式

    中介者模式(Mediator Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/419 访问. 中介者模式 ...

  8. C#设计模式之18-备忘录模式

    备忘录模式(Memento Pattern) 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/421 访问. 备忘录模式属 ...

  9. Mybatis-08-动态SQL

    动态SQL 什么是动态SQL? 根据不同的条件生成不同的SQL语句. if choose(where,otherwise) trim(where,set) foreach 搭建环境 create ta ...

  10. 虚拟机安装mysql遇到的坑

    相信很多同学也跟我一样在家里,windows安装个虚拟机,再安装linux.然后在linux下模拟出一套运行环境.这次我装的是mysql 8.0.中间遇到很多坑,记录一下.(用的linux为redha ...