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. C++STL算法

    1.不变序列算法 不会修改算法所作用的容器或对象 适用于顺序容器和关联容器,时间复杂度为O(n). 2.变值算法 会修改源区间或目标区间元素的值,值被修改的那个区间,不可属于关联容器. 3.删除算法 ...

  2. c++日志工具spdLog

    c++日志工具spdLog简单使用示例代码 spdlog直接引用头文件就可以使用,这一点还是比较方便的,也是刚入门使用,下面是在源码的示例代码基础上修改测试的代码: #include <cstd ...

  3. Python精选库大全,建议收藏留用!

    Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多.而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开 ...

  4. Web For Pentester 学习笔记 - XSS篇

    XSS学习还是比较抽象,主要最近授权测的某基金里OA的XSS真的实在是太多了,感觉都可以做一个大合集了,加上最近看到大佬的博客,所以这里我也写一个简单的小靶场手册,顺带着也帮助自己把所有XSS的方式给 ...

  5. 【Linux】添加Nginx代理配置只允许内部IP访问

    location / { index index.jsp; proxy_next_upstream http_500 http_502 http_503 http_504 error timeout ...

  6. oracle正则表达式语法介绍及实现手机号码匹配方法

    Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的.本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式 ...

  7. 30分钟闲置服务器建站(gitlab为例)

    前言 最近博主的阿里云主机又到了续费的时候了,刚买云主机的时候那是各种优惠各种打折,续费的时候只能当孙子了. 为了节省开支,又保证高性能的前提下,买了台10代NUC,内存和ssd自选,搭建一台个人服务 ...

  8. ls-remote -h -t git://github.com/adobe-webplatform/eve.git 报错问题

    npm ERR! Error while executing:npm ERR! D:\开发工具\git\Git\cmd\git.EXE ls-remote -h -t git://github.com ...

  9. JAVA8—————StringJoiner类

    JAVA8——StringJoiner类引言:在阅读项目代码是,突然看到了StringJoiner这个类的使用,感觉很有意思,对实际开发中也有用,实际上是运用了StringBuilder的一个拼接字符 ...

  10. 「完整案例」基于Socket开发TCP传输客户端

    ​1 程序界面设计 TCP客户端在上位机开发中应用很广,大多数情况下,上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的.TCP客户端的主要功能就是连接服务器.发送数据.接收数据.断开 ...