Python TestCase中的断言方法介绍
前言
测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程。正如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中断言Assertion的一些改进方案
Python Assert 为何不尽如人意? Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert isinstance('Hello', int) Traceback (most recent call last): File "<input>
-
分析在Python中何种情况下需要使用断言
这个问题是如何在一些场景下使用断言表达式,通常会有人误用它,所以我决定写一篇文章来说明何时使用断言,什么时候不用. 为那些还不清楚它的人,Python的assert是用来检查一个条件,如果它为真,就不做任何事.如果它为假,则会抛出AssertError并且包含错误信息.例如: py> x = 23 py> assert x > 0, "x is not zero or negative" py> assert x%2 == 0, "x is not a
-
python 实现selenium断言和验证的方法
最近在学习自动化测试,网上资料是挺多的,但是都是很基础的,想深入一点了解就没有资料了.于是开始自己研究. 这两天在看selenium验证和断言方面的资料. 断言就是判断是否跟预期结果一致,不一致的话,测试用例直接失败,程序便不再执行下去. 验证也是判断是否跟预期结果一致,不一致的话,测试用例还会执行下去. 如何简单的理解断言和验证呢?举个简单的例子.比如点击某个按钮会跳转到某个页面上,我们会设置断言为是否能成功跳转到这个页面上,验证的话,一般为这个页面的信息.如果都不跳转成功,那么页面信息就什么
-
Python断言assert的用法代码解析
在开发一个程序时候,与其让它运行时崩溃,不如在它出现错误条件时就崩溃(返回错误).这时候断言assert 就显得非常有用. python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假. 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常. assert的语法格式: assert expression 它的等价语句为: if not expression: raise AssertionError 这段代码用来检测数据类型
-
Python TestCase中的断言方法介绍
前言 测试是一个贯穿于整个开发过程的连续过程,从某个意义上说,软件开发的过程实际上就是测试过程.正如Martin Fowler所说的"在你不知道如何测试代码之前,就不该编写程序.而一旦你完成了程序,测试代码也应该完成.除非测试成功,你不能认为你编写出了可以工作的程序." Python TestCase断言方法 unittest.TestCase 类中提供了很多断言方法, 通过这些断言方法,我们就可以检查程序逻辑是否符合预期. 方法 说明 assertEqual(x,y) 验证 x =
-
Python 字典中的所有方法及用法
字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 字典的使用 在某些情况下,字典比列表更加适用: 1.表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组 2.存储文件修改时间,用文件名作为键; 3.数字电话\地址薄 创建字典的五种方式 # 字典的创建方式 # 方式一 {key: value} dict1 = {'one': 1, 'two': 2, 'three': 3} print(dict1) # 方式二
-
python os.path模块使用方法介绍
os.path模块是os模块根据系统类型从另一个模块导入的,并非由os模块实现 1.os.path.abspath(相对路径)-----返回对应路径的绝对路径 os.path.abspath(".") import os.path print(os.path.abspath(".")) E:\python练习 上一层路径“..” import os.path print(os.path.abspath("..")) E:\ 2.os.path.a
-
基于StringBuilder类中的重要方法(介绍)
下面的API注解包含了StringBuilder类中的重要方法 append(boolean b):将 boolean 参数的字符串表示形式追加到序列. append(char c):将 char 参数的字符串表示形式追加到此序列. append(char[] str):将 char 数组参数的字符串表示形式追加到此序列. append(char[] str,int offset,int len):将 char 数组参数的子数组的字符串表示形式追加到此序列. append(CharSequenc
-
重写Java中的equals方法介绍
Java中,只有8种基本类型不是对象,例如:4种整形类型(byte, short, int,long),2种浮点类型(flout, double),boolean, char不是对象,其他的所有类型,不论是对象数组,列表等都扩展了Object类.了解学习Object中方法的设计原理和实现方式有助于更好的学习理解java语言.下面,我们首先学习一下Object中的equals方法. 判断两个对象相等时,JVM首先查找两个对象的hashCode, 如果两者hashCode不同,则返回false;如果
-
Java中的hashcode方法介绍
哈希表这个数据结构想必大多数人都不陌生,而且在很多地方都会利用到hash表来提高查找效率.在Java的Object类中有一个方法: public native int hashCode(); 根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现. 为何Object类需要这样一个方法?它有什么作用呢?今天我们就来具体探讨一下hashCode方法. 一.hashCode方法的作用 对于包含容器类型的程序设计语言来说,基本上都会涉及到has
-
java ArrayList中的remove方法介绍
先看一段代码,看看自定义的ArrayList中的remove设计是否有问题. public class MyArrayList { private Object[] mData = new Object[0]; private int mSize = 0; // 删除第i个元素 public void remove(int i) { if (i < 0 || i >= mSize) return; for (int index = i; index < mSize - 1; index+
-
Java中PrintWriter使用方法介绍
目录 简介 文本文件的转码复制 运行程序 简介 PrintWriter 与 PrintStream 相同.PrintStream 只能接字节流,而 PrintWriter 既能接字节流又能接字符流. PrintStream 最终输出的总是 byte 数据,而 PrintWriter 则是扩展了 Writer 接口,它的 print()/println() 方法最终输出的是 char 数据.两者的使用方法几乎是一模一样的. 文本文件的转码复制 public class Main { public
-
Javascript中的call()方法介绍
在Mozilla的官网中对于call()的介绍是: 复制代码 代码如下: call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. Call() 语法 复制代码 代码如下: fun.call(thisArg[, arg1[, arg2[, ...]]]) Call() 参数 thisArg 复制代码 代码如下: 在fun函数运行时指定的this值.需要注意的是,指定的this值并不一定是该函数执行时真正的this值,如果这个函数处于非严格模式下,则指定为nul
-
python中类的属性和方法介绍
Python-类属性,实例属性,类方法,静态方法,实例方法 类属性和实例属性 #coding:utf-8 class Student(object): name = 'I am a class variable' #类变量 >>> s = Student() # 创建实例s >>> print(s.name) # 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性 Student >>> print(Student.n
随机推荐
- angularjs封装$http为factory的方法
- 关于react-router的几种配置方式详解
- 详解在spring boot中配置多个DispatcherServlet
- php中this关键字用法分析
- 一个简单实现多条件查询的例子
- PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
- 实例详解PHP中html word 互转的方法
- 在Python中使用base64模块处理字符编码的教程
- MYSQL同步 Slave_IO_Running: No 或者Slave_SQL_Running: No的解决方法[已测]
- 详解Vue.js搭建路由报错 router.map is not a function
- Shell脚本监控网站页面正常打开情况
- Javascript延迟执行实现方法(setTimeout)
- 建议大家看下JavaScript重要知识更新
- Android Rreact Native 常见错误总结
- 动网access版暴log库终极大法
- python将ansible配置转为json格式实例代码
- JS代码随机生成姓名、手机号、身份证号、银行卡号
- php可应用于面包屑导航的迭代寻找家谱树实现方法
- Android 仿微信图像拍摄和选择界面功能(代码分享)
- 10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)