Python TestCase中的断言方法介绍


Posted in Python onMay 02, 2019

前言

测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程。正如Martin Fowler所说的"在你不知道如何测试代码之前,就不该编写程序。而一旦你完成了程序,测试代码也应该完成。除非测试成功,你不能认为你编写出了可以工作的程序。"

Python TestCase断言方法

unittest.TestCase 类中提供了很多断言方法, 通过这些断言方法,我们就可以检查程序逻辑是否符合预期。

方法 说明
assertEqual(x,y) 验证 x = y
assertNotEqual(x,y) 验证 x != y
assertTrue(x) 验证 x 为 True
assertFalse(x) 验证 x 为 False
assertIn(x , list ) 验证 item 在 list 中
assertNotIn(item , list ) 验证 item 不在 list 中

除了以上这些简单的断言方法之外,还提供了一些高级断言方法。比如 assertAlmostEqual,它的方法签名是这样的:

def assertAlmostEqual(self, first, second, places=None, msg=None,
       delta=None)

delta 表示 second - first 的差值绝对值范围,举个例子,以下断言都是正确的:

self.assertAlmostEqual(1, 1)
self.assertAlmostEqual(2, 1, delta=1)
self.assertNotAlmostEqual(3, 1, delta=1)

places 表示: second - first 的差值绝对值,对其取近似值,所保留的小数位数,形如:round(abs(first - second),places)。如果结果为 0,则断言通过。

以下断言都是正确的:

self.assertAlmostEqual(2, 1.98, places=1)
self.assertNotAlmostEqual(2, 1.98, places=2)

注意: places 与 delta 不能同时存在,否则会抛出 TypeError: specify delta or places not both

除此之外,还提供了很多断言方法哦:

Python TestCase中的断言方法介绍

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python改变日志(logging)存放位置的示例
Mar 27 Python
Python三级目录展示的实现方法
Sep 28 Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
python 多线程重启方法
Feb 18 Python
Python 20行简单实现有道在线翻译的详解
May 15 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
python中列表的切片与修改知识点总结
Jul 23 Python
解决django服务器重启端口被占用的问题
Jul 26 Python
Python decimal模块使用方法详解
Jun 08 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
python基础之类方法和静态方法
Oct 24 Python
Python3中的bytes和str类型详解
May 02 #Python
利用pyinstaller打包exe文件的基本教程
May 02 #Python
Python中psutil的介绍与用法
May 02 #Python
Python3.5字符串常用操作实例详解
May 01 #Python
Python3.5文件修改操作实例分析
May 01 #Python
详解pandas的外部数据导入与常用方法
May 01 #Python
Python3.5文件读与写操作经典实例详解
May 01 #Python
You might like
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
A标签中通过href和onclick传递的this对象实现思路
2013/04/19 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
2013/12/25 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
python入门教程 python入门神图一张
2018/03/05 Python
Python输入二维数组方法
2018/04/13 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
联想马亚西亚官方网站:Lenovo Malaysia
2018/09/19 全球购物
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
研修第一天随笔感言
2014/02/15 职场文书
学雷锋标兵事迹材料
2014/08/18 职场文书
党支部三会一课计划
2014/09/24 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS