很多编程小白不太理解单元测试,为什么要进行单元测试呢?很简单,主要是提高代码的正确,同时确保重构不出错。接下来我们一起学习怎么用python做单元测试吧。

python内置了一个unittest,但是写起来稍微繁琐,比如都要写一个TestCase类,还得用 assertEqual, assertNotEqual等断言方法。 而使用pytest运行测试统一用assert语句就行,兼容unittest,目前很多知名开源项目如PyPy,Sentry也都在用。关于pytest的使用可以参考其官方文档,虽然有很多高级特性,但是掌握其中一小部分基本就够用了。

下面是py.test的基本用法,以常见的两种测试类型(验证返回值和抛出异常)为例:

def add(a, b):

"""return a + b

Args:

a (int): int

b (int): int

Returns:

a + b

Raises:

AssertionError: if a or b is not integer

"""

assert all([isinstance(a, int), isinstance(b, int)])

return a + b

def test_add():

assert add(1, 2) == 3

assert isinstance(add(1, 2) , int)

with pytest.raises(Exception):    # test exception

add('1', 2)

基本使用就是这么简单。真实场景下远远比这个复杂,甚至有时候构造测试的时间比写业务逻辑的时间还要长。但是再复杂的逻辑也是一点点功能堆积,如果可以确保每一部分都正确,整体上是不会出错的。单元测试同时也提醒我们,函数完成的功能尽可能单一,这样才利于测试。

下面几个是我常用的pytest命令:

py.test test_mod.py   # run tests in module

py.test somepath      # run all tests below somepath

py.test -q test_file_name.py    # quite输出

py.test -s test_file_name.py    # -s参数可以打印测试代码中的输出,默认不打印,print没结果

py.test test_mod.py::test_func  # only run tests that match the "node ID",

py.test test_mod.py::TestClass::test_method  # run a single method in

以上就是使用python做单元测试的方法。更多Python学习推荐:云海天Python教程网。

python做单元测试_如何使用python做单元测试?相关推荐

  1. 业余学习python有用吗_对于那些不做编程工作的小伙伴来说,学习Python有什么用呢?...

    很多同学会说Python那么火,铺天盖地的都是他的广告,可是我的平时工作和学习又接触不到编程之类的东西,那来学习它又有什么用呢? 有没有这个必要呢?在此,小编对于有这种疑问的同学呢想对你们说,其实即便 ...

  2. python人工智能图像识别_人工智能之Python人脸识别技术,人人都能做识别!

    原标题:人工智能之Python人脸识别技术,人人都能做识别! 作者丨Python小哥哥 https://www.jianshu.com/p/dce1498ef0ee 一.环境搭建 1.系统环境 Ubu ...

  3. 适合做python的视频_为什么说python适合做入门语言?老男孩Python视频

    什么是Python?Python为什么会变得如此受欢迎呢?Python对于初学者非常友好,同时具备功能强大.容易上手的优势,应用领域广泛,让大家对它越来越关注了,今天老男孩教育就为大家详细的介绍一下P ...

  4. python最擅长做什么_什么是Python?Python擅长什么领域?

    Python是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido(吉多) van Rossum于1989年发明,第一个公开版本发行于1991年.在国外应用非常的广泛,国外的大学里面,软工都大量 ...

  5. python怎么做项目_...内学习python和django,并做出一个项目需要怎么准备,可以做什么......

    匿名用户 1级 2016-05-18 回答 Python(英语发音:/ˈpaɪθən/), 是一种面向对象.解释型计算机程序设计语言,是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GN ...

  6. python代码做图_如何用Python代码制作图

    Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的.大型项目的开发. 图是一 ...

  7. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  8. python列表拆包_详解python 拆包可迭代数据如tuple, list

    详解python 拆包可迭代数据如tuple, list 拆包是指将一个结构中的数据拆分为多个单独变量中. 以元组为例: >>> a = ('windows', 10, 25.1, ...

  9. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  10. python是什么编程教程-编程python是什么_谁的Python教程最好?

    谁的Python教程最好? 建议你可以看看这里的<Python基础教程>和<Python学习手册>应该适合你的. 希望对你有用. 记得采纳呀~ Python中的9个代码小实例! ...

最新文章

  1. 基于开源Flash Server:Red5构建RTMP流媒体播放平台
  2. buffer 与cache 的区别
  3. DEBUG的参数说明
  4. java windows7 环境变量_Windows7环境变量中,系统变量与用户变量的优先级
  5. 剑指Offer - 面试题65. 不用加减乘除做加法(位运算,要看哦)
  6. 详解Python项目开发时自定义模块中对象的导入和使用
  7. Gridview模板中提供的删除功能
  8. HashMap的实现原理看这篇就够了,图文源码详解,深入浅出简单易懂
  9. 使用HTML5构建iOS原生APP(2)
  10. 模式识别(3)-SVM分类算法
  11. STM32——EMWIN 字体(二十)
  12. 什么是计算机网络体系结构?
  13. 《谁说菜鸟不会数据分析》数据处理 之 数据清洗--重复数据的处理
  14. Educational Codeforces Round 87 (Rated for Div. 2)A. Alarm Clock
  15. 字节跳动 tt.pay 支付问题 前端方面
  16. TxtView 手机文本阅读器
  17. 大数据分析师高级证书_数据分析师资格证书好考吗_大数据分析师认证
  18. 石大师装机大师怎么重装系统
  19. python编程课程-天津Python编程课程
  20. 【DG】DG日常维护

热门文章

  1. asp实训报告摘要_个人网站实训报告---asp.NET 动态网站设计
  2. html里fill怎么自定义,HTML canvas fill()用法及代码示例
  3. html5新增graph,Qunee for HTML5
  4. 用c语言实现倍增原理,RLE算法变体C语言实现
  5. arduino怎么和C语言程序通信,c – 如何将arduino库与标准C代码一起使用
  6. IDEA显示完整目录,取消合并的文件,取消“ . “ 的这种目录
  7. pytorch使用torch.nn.Sequential构建网络
  8. python降维——局部线性嵌入算法(LLE)
  9. 需要c语言,需要C语言的需要什么工具软件
  10. JDBC之数据库的连接步骤(六步)