广告
返回顶部
首页 > 资讯 > 后端开发 > Python >利用Python中unittest实现简单的单元测试实例详解
  • 347
分享到

利用Python中unittest实现简单的单元测试实例详解

详解实例单元测试 2022-06-04 18:06:56 347人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nos

前言

单元测试的重要性就不多说了,可恶的是python中有太多的单元测试框架工具,什么unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等这些,先不说如何写单元测试,光是怎么运行单元测试就有N多种方法,再因为它是测试而非功能,是很多人没兴趣触及的东西。但是作为一个优秀的程序员,不仅要写好功能代码,写好测试代码一样的彰显你的实力。如此多的框架和工具,很容易让人困惑,困惑的原因是因为并没有理解它的基本原理,如果一些基本的概念都不清楚,怎么能够写出思路清晰的测试代码?

今天的主题就是unittest,作为标准Python中的一个模块,是其它框架和工具的基础,参考资料是它的官方文档:Http://docs.python.org/2.7/library/unittest.html和源代码,文档已经写的非常好了,本文给出一个实例,很简单,看一下就明白了。

实例如下

首先给出一个要测试的Python模块,代码如下:

待测试的程序:date_service.pyPython


# coding:utf8
'''
日期常用类
 
@author: www.crazyant.net
'''
 
def get_date_year_month(pm_date):
 """获取参数pm_date对应的年份和月份
 """
 if not pm_date:
  raise Exception("get_curr_year_month: pm_date can not be None")
 
 # get date's yyyymmddHHMMSS pattern
 str_date = str(pm_date).replace("-", "").replace(" ", "").replace(":", "")
 
 year = str_date[:4]
 month = str_date[4:6]
 return year, month

然后就可以编写测试脚本,代码如下:

测试程序:test_date_service.pyPython


# coding: utf8
 
"""
测试date_service.py
 
@author: peishuaishuai
"""
 
import unittest
 
from service import date_service
 
class DateServiceTest(unittest.TestCase):
 """
 test clean_tb_async_src_acct.py
 """
 
 def setup(self):
  """在这里做资源的初始化 """
  pass
 
 def tearDown(self):
  """在这里做资源的释放 """
  pass
 
 def test_get_date_year_month_1(self):
  """ 测试方法1,测试方法应该以test_开头 """
  
  pm_date = "2015-11-25 14:40:52"
  year, month = date_service.get_date_year_month(pm_date)
  self.assertEqual(year, "2015", "year not equal")
  self.assertEqual(month, "11", "month not equal")
 
 def test_get_date_year_month_2(self):
  """ 测试方法1,测试方法应该以test_开头 """
  pm_date = "20161225144052"
  year, month = date_service.get_date_year_month(pm_date)
  self.assertEqual(year, "2016", "year not equal")
  self.assertEqual(month, "12", "month not equal")
 
 
# test main
if __name__ == "__main__":
 unittest.main()

运行这个test_date_service.py,就会打印出如下信息:

运行测试结果


..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
 
OK

这里的每一个点,就代表运行成功了一个测试,最后会给出运行成功了全部的多少个测试以及测试的时间。

之前的很多时间,我一直不知道写单测有什么用,因为单测只是把写好的程序运行了一遍,并没有创建新的逻辑,我心里在疑惑“我已经将程序按照我的想法写好了,它就会按照我的设计来运行,为什么要用单测重新走一遍呢?”,后来出了一个事情,代码出了BUG,我调试了好久,才发现问题出在”obja.equals(objb)”,因为obja和objb一个是Long一个是Integer,所以即使数值相同,也不会相等。

从那一刻,我发现单测做的事情,其实就是“验证程序是否按照我的想法在运行”,这才是它的终极目的,但是,这却是很关键的事情,设计往往没有错,但是写出来的代码却经常并不是按照我们所想的去运行的。

单测,就是验证代码是不是按照我们想象的在运行,这也是单测这个技术的意义所在。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

--结束END--

本文标题: 利用Python中unittest实现简单的单元测试实例详解

本文链接: https://www.lsjlt.com/news/13830.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 利用Python中unittest实现简单的单元测试实例详解
    前言 单元测试的重要性就不多说了,可恶的是Python中有太多的单元测试框架和工具,什么unittest, testtools, subunit, coverage, testrepository, nos...
    99+
    2022-06-04
    详解 实例 单元测试
  • python中怎么实现unittest单元测试
    python中怎么实现unittest单元测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。说明导入unittest模块。导入被测对象。创建测试类unittest.TestCa...
    99+
    2023-06-20
  • 深入理解Python单元测试unittest的使用示例
    软件测试 大型软件系统的开发是一个很复杂的过程,其中因为人的因素而所产生的错误非常多,因此软件在开发过程必须要有相应的质量保证活动,而软件测试则是保证质量的关键措施。正像软件熵(software entro...
    99+
    2022-06-04
    示例 单元测试 Python
  • Golang 单元测试和基准测试实例详解
    目录前言Go 单元测试单元测试覆盖率基准测试前言 多人协作的项目里,要保证代码的质量,自然离不开单元测试。开发完一个功能后肯定要对所写的代码进行测试,测试没有问题之后再合并到代码库供...
    99+
    2022-11-11
  • C语言实现单元测试的示例详解
    目录前沿使用前提测试框架如下测试方法编写文件验证前沿 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际...
    99+
    2022-11-13
  • python中使用 unittest.TestCase单元测试的用例详解
    目录单元测试和测试用例各种断言方法函数测试 1.准备测试函数2.编写一个能使用它的程序3.对函数进行单元测试类测试1.准备测试的类2.编写一个能使用它的程序3.对类进行单元...
    99+
    2022-11-12
  • python---简单的接口测试实例
    我们可以用Jmeter做接口测试,但是呢个人觉得那个有点局限性,用python就灵活很多,   可以按自己的思路来构建比较灵活,下面给大家介绍一个简单的接口测试实例。   一、我们的思路如下:   首先我们要弄清楚我们的整个思路: 1.先...
    99+
    2023-01-31
    实例 接口 简单
  • python3+telnetlib实现简单自动测试示例详解
    目录1 telnetlib介绍 1.1 简介1.2 库常用函数及使用1.2.1 建立连接1.2.2 发送命令1.2.3 读取返回数据1.2.4 关闭连接1.3 使用示例2 ...
    99+
    2022-11-12
  • Go单元测试利器testify使用示例详解
    目录testifyassert 包require 包mock 包suite 包testify 在团队里推行单元测试的时候,有一个反对的意见是:写单元测试耗时太多。且不论这个意见对错...
    99+
    2022-12-15
    Go 单元测试testify Go testify
  • Vue中怎么利用case实现单元测试
    Vue中怎么利用case实现单元测试,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。测试关注点对于vue组件,单元测试测试主要关...
    99+
    2022-10-19
  • Android编程单元测试实例详解(附源码)
    本文实例讲述了Android编程单元测试。分享给大家供大家参考,具体如下: 完整实例代码代码点击此处本站下载。 本文是在上一篇文章《java编程之单元测试(Junit)实例分析...
    99+
    2022-06-06
    单元 单元测试 源码 测试 Android
  • 怎么在Android中利用Activity实现单元测试
    这期内容当中小编将会给大家带来有关怎么在Android中利用Activity实现单元测试,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对Acitivity的测试对于Activity,我们大致有两种测试需求...
    99+
    2023-05-30
    android activity
  • 怎么实现Python的add5()单元测试
    本篇内容介绍了“怎么实现Python的add5()单元测试”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!TestAdd5类由unittest...
    99+
    2023-06-17
  • python实现人脸检测的简单实例
    目录OpenCV代码结果:方法如下:完整代码:总结OpenCV OpenCV 是计算机视觉领域最受欢迎的开源库,起初它由 C/C ++ 编写,现在用 Python 也能使用。 Ope...
    99+
    2022-11-13
  • Go语言工程实践单元测试基准测试示例详解
    目录背景测试单元测试演示覆盖率依赖文件处理Mock基准测试小结背景 测试的出现是为了避免项目中出现重大事故 测试是避免事故的最后一道屏障 测试 单元测试的覆盖率在一定程度上而言,...
    99+
    2023-02-05
    Go语言单元测试基准测试 Go语言测试
  • Spring Boot中怎么利用JUnit 5实现单元测试
    这篇文章给大家介绍Spring Boot中怎么利用JUnit 5实现单元测试,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. 忽略测试用例执行JUnit 4:@Test  @Ignore ...
    99+
    2023-06-16
  • GO中的单元测试怎么实现
    这篇“GO中的单元测试怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“GO中的单元测试怎么实现”文章吧。  ...
    99+
    2023-07-04
  • 利用junit4怎么实现一个单元测试功能
    今天就跟大家聊聊有关利用junit4怎么实现一个单元测试功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Junit单元测试框架是Java程序开发必备的测试利器,现在最常用的就是Ju...
    99+
    2023-05-31
    junit4
  • Golang实现单元测试中的逻辑层
    目录准备工作基本 case 代码生成 mock 接口编写单元测试优化mockgen总结前面我们完成了最麻烦的数据层的单元测试,今天我们来看看单元测试中最容易做的一层,数据逻辑层,也就...
    99+
    2023-03-10
    Golang单元测试 逻辑层 Golang单元测试 Go 单元测试
  • Golang实现单元测试中的接口层
    目录环境代码base case单元测试工具方法单元测试问题优化点总结上次我们已经搞定了逻辑层的单元测试,这次我们来康康接口层的单元测试。接口层主要负责的就是请求的处理,最常见的就是 ...
    99+
    2023-03-11
    Golang单元测试 接口层 Golang单元测试 Golang接口层
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作