unittest_assert断言(4)
测试用例是否测试通过是通过将预期结果与实际结果做比较来判定的,那代码中怎么来判定用例是否通过呢?在python中这种判定的方法就叫做断言,断言可以使用python的assert方法,也可以使用unittest框架提供的一系列断言方法。
unittest常用断言方法如下
| 方法 | 说明 |
| assertEqual(arg1, arg2, msg=None) | 验证arg1=arg2,不等则fail |
| assertNotEqual(arg1, arg2, msg=None) | 验证arg1 != arg2, 相等则fail |
| assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
| assertFalse(expr,msg=None) | 验证expr是false,如果为true,则fail |
| assertIsNone(expr, msg=None) | 验证expr是None,不是则fail |
| assertIsNotNone(expr, msg=None) | 验证expr不是None,是则fail |
| assertIn(arg1, arg2, msg=None) | 验证arg1是arg2的子串,不是则fail |
| assertNotIn(arg1, arg2, msg=None) | 验证arg1不是arg2的子串,是则fail |
| assertIs(arg1, arg2, msg=None) | 验证arg1、arg2是同一个对象,不是则fail |
| assertIsNot(arg1, arg2, msg=None) | 验证arg1、arg2不是同一个对象,是则fail |
| assertGreater(arg1, arg2, msg=None) | 验证arg1大于arg2,不是则fail |
| assertGreaterEqual(arg1, arg2, msg=None) | 验证arg1大于等于arg2,不是则fail |
| assertLess(arg1, arg2, msg=None) | 验证arg1小于arg2,不是则fail |
| assertLessEqual(arg1, arg2, msg=None) | 验证arg1小于等于arg2,不是则fail |
| assertRaises(expected_exception) | 使用with语句,断言执行的代码快会抛指定异常 |
代码如下
import unittest
class Demo(unittest.TestCase):
def raise_value_error(self):
raise ValueError
def test_assert(self):
a, b = 1, 2
c = None
d = True
e = False
f = [1, 3, 4]
g = h = 5
# >>比较断言
# 断言相等
assert a + b == 3
self.assertEqual(a+b, 3)
# 断言不等
assert a + b != 4
self.assertNotEqual(a+b, 4)
# >>空值断言
# 断言非空
assert a is not None
self.assertIsNotNone(a)
# 断言为空
assert c is None
self.assertIsNone(c)
# >>布尔值断言
# 断言为True
assert d is True
self.assertTrue(d)
# 断言为False
assert e is False
self.assertFalse(e)
# >>包含断言
# 断言包含在内
assert a in f
self.assertIn(a, f)
# 断言不包含在内
assert b not in f
self.assertNotIn(b, f)
# >>对象断言
# 断言是同一个对象
assert g is h
self.assertIs(g, h)
# 断言不是同一个对象
assert a is not h
self.assertIsNot(a, h)
# >>断言预期异常
with self.assertRaises(ValueError):
self.raise_value_error()
if __name__ == '__main__':
unittest.main()
unittest_assert断言(4)的更多相关文章
- iOS-----程序异常处理----- 断言NSAssert()和NSParameterAssert区别和用处
NSAssert和assert是断言,主要的差别是assert在断言失败的时候只是简单的终止程序,而NSAssert会报告出错误信息并且打印出来.所以尽管的使用NSAssert,可以不去使用asser ...
- GO语言总结(5)——类型转换和类型断言
上一篇博客介绍了Go语言的数组和切片——GO语言总结(4)——映射(Map),本篇博客介绍Go语言的类型转换和类型断言 由于Go语言不允许隐式类型转换.而类型转换和类型断言的本质,就是把一个类型转换到 ...
- postman 断言解析
最近在学习postman官方文档, 顺势翻译出来,以供学习! postman断言是JavaScript语言编写的,在postman客户端指定区域编写即可. 断言会在请求返回之后,运行,并根据断言的pa ...
- 测试框架Mocha与断言expect
测试框架Mocha与断言expect在浏览器和Node环境都可以使用除了Mocha以外,类似的测试框架还有Jasmine.Karma.Tape等,也很值得学习. 整个项目源代码: 为什么学习测试代码? ...
- JavaScrict中的断言调试
今天在看忍者秘籍的时候,看到一个断言方法.查阅了一下资料,原来javascript中的console也包含这个方法.具体用法如下: <script type="text/javascr ...
- 断言与异常(Assertion Vs Exception)
在日常编程实践中,断言与异常的界限不是很明显,这也使得它们常常没有被正确的使用.我也在不断的与这个模糊的怪兽搏斗,仅写此文和大家分享一下我的个人看法.我想我们还可以从很多角度来区别断言和异常的使用场景 ...
- 断言(Assert)与异常(Exception)
断言是被用来检查非法情况而不是错误情况,即在该程序正常工作时绝不应该发生的非法情况,用来帮助开发人员对问题的快速定位.异常处理用于对程序发生异常情况的处理,增强程序的健壮性.容错性,减少程序使用中对用 ...
- Linux Kernel 代码艺术——编译时断言
本系列文章主要写我在阅读Linux内核过程中,关注的比较难以理解但又设计巧妙的代码片段(不关注OS的各个模块的设计思想,此部分我准备写在“深入理解Linux Kernel” 系列文章中),一来通过内核 ...
- selenium自动化-java-封断言类2
封装断言类 package streamax.com; import java.util.ArrayList; import java.util.List; import org.testng.Ass ...
随机推荐
- 【Linux】【Service】【OpenSSL】原理及实现
1. 概念 1.1. SSL(Secure Sockets Layer安全层套接字)/TLS(Transport Layer Security传输层套接字). 最常见的应用是在网站安全方面,用于htt ...
- Spring Boot中注解@ConfigurationProperties
在Spring Boot中注解@ConfigurationProperties有三种使用场景,而通常情况下我们使用的最多的只是其中的一种场景.本篇文章带大家了解一下三种场景的使用情况. 场景一 使用@ ...
- 2.使用Lucene开发自己的搜索引擎–indexer索引程序中基本类介绍
(1)Directory:Directory类描述了Lucene索引的存放位置,它是一个抽象,其子类负责具体制定索引的存储路径.FSDirectory.open方法来获取真实文件在文件系统中的存储路径 ...
- SpringMvc分析
1.用户单击某个请求路径,发起一个request请求,此请求会被前端控制器(DispatcherServlet)处理 2.前端控制器(DispatcherServlet)请求处理器映射器(Handle ...
- Android App加固原理与技术历程
App为什么会被破解入侵 随着黑客技术的普及化平民化,App,这个承载我们移动数字工作和生活的重要工具,不仅是黑客眼中的肥肉,也获得更多网友的关注.百度一下"App破解"就有529 ...
- Apache Log4j2,RASP 防御优势及原理
Apache Log4j2 远程代码执行漏洞已爆发一周,安全厂商提供各类防御方案和检测工具,甲方团队连夜应急. 影响持续至今,网上流传的各种利用和绕过姿势还在层出不穷,影响面持续扩大.所有安全人都开始 ...
- 两大js移动端调试神器 / 调试工具分享 !
分享大家一个CDN网站:https://www.bootcdn.cn/ eruda 移动端网页调试工具的使用: <script src="https://cdn.bootcdn.net ...
- [BUUCTF]PWN——jarvisoj_level3
jarvisoj_level3 附件 步骤 例行检查,32位,nx保护 运行一下程序 32位ida载入,shift+f12没有看到程序里有可以直接利用的后面函数,根据运行时的字符串找到了程序的关键函数 ...
- ElasticSearch 使用
一.索引操作 --------------------------------- 创建索引(PUT) PUT /索引名 curl -X PUT http://10.20.20.214:9200/sho ...
- JAVA获取当前日期的下周一到下周日的所有日期集合
/** * 获取当前日期的下周一到下周日的所有日期集合 * @return */ public static List getNextWeekDateList(){ Calendar cal1 = C ...