Python中unittest的断言方法详解

 更新时间:2022年01月14日 09:28:36   作者:陈小瑜i  
大家好,本篇文章主要讲的是Python中unittest的断言方法详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下

断言方法:

        是unittest提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比

方法有:

assert+空格+要判断的语句+逗号+'报错语句'        python提供

assertEqual(a,b,msg='报错语句')        若a==b不报错,否则报错内容为msg

assertNotEqual(a,b,msg='报错语句')        若a!=b不报错,否则报错内容为msg

assertIn(a,b,msg='报错语句')        若a in b不报错,否则报错内容为msg

assertNotIn(a,b,msg='报错语句')        若a not in b不报错,否则报错内容为msg

assertTrue(a,msg='报错语句')        a为表达式,若a成立不报错,否则直接报错

assertFalse(a,msg='报错语句')        a为表达式,若a不成立不报错,否则直接报错

assertIsInstance(obj,cls,msg='报错语句')        obj是cls的一个实例,是则不报错,否则直接报错

assertNotIsInstance(obj,cls,msg='报错语句')        obj不是cls的一个实例,不是不报错,否则直接报错

assertIsNone(a,msg='报错语句')       a为None不报错,否则直接报错

assertNotIsNone(a,msg='报错语句')       a不为None不报错,否则直接报错

 下面是做的例子,后边是运行结果:

        运行结果显示:

        OK和'.'代表开发和测试的代码无问题

        F(FAIL)开发代码有问题,测试代码无问题

        E(ERROR)测试代码有问题,开发代码不确定

assert 3 == 5, '错了'	# 错了
assert type(8) is int, '错了'	# 运行成功,不显示结果
assert id(9) is int, '错了'	# 错了
assert type(id(9)) is int, '错了'	# 运行成功,不显示结果
import unittest
class Test(unittest.TestCase):
	def setUp(self):
		print('测试开始')
	def testEqual(self):
		self.assertEqual(10,100,msg = '错了')	# 错了
		self.assertEqual('a','a',msg = '错了')	# OK
		self.assertNotEqual('a','b',msg = '错了')	# OK
		self.assertIn(1,[2,3,4,5],msg = '错了')	# 错了
		self.assertNotIn('a',[2,3,4,5],msg = '错了')	# OK
		self.assertNotIn('a',{'a':1},msg = '错了')	# 错了
		self.assertNotIn(1,{'a':1},msg = '错了')	# OK
 
		self.assertTrue(6 == 6,msg = '错了')	# OK
		self.assertTrue(bool(3) is False,msg = '错了')	# 错了
		self.assertFalse(bool is False,msg = '错了')	# OK
 
		class People:
			print('我是人类')
		class Dog:
			print('我是犬类')
 
		xiaoming = People()
		gouzi = Dog()
		self.assertIsInstance(gouzi,People,msg = '错了')	# 报错
		self.assertNotIsInstance(xiaoming,People,msg = '错了')	# 报错
		self.assertNotIsInstance(bool,int,msg = '错了')	# OK
		self.assertIsInstance(False,int,msg = '错了')	# OK
		self.assertIsInstance(3,bool,msg = '错了')	# 报错
 
		self.assertIsNone(None,msg = '错了')	# OK
		self.assertIsNone(0,msg = '错了')	# 报错
		self.assertIsNone('',msg = '错了')	# 报错
		self.assertIsNone(None,msg = '错了')	# OK
 
		def myfum():
			print('我是一个函数')
		self.assertIsNone(myfum,msg = '错了')	# 报错
		self.assertIsNone(myfum(),msg = '错了')	# OK
		self.assertIsNone(print,msg = '错了')	# 报错
		self.assertIsNone(print(),msg = '错了')	# OK
	def tearDown(self):
		print('测试结束')
 
unittest.main()

总结

到此这篇关于Python中unittest的断言方法详解的文章就介绍到这了,更多相关Python unittest断言内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python动态属性与反射机制方式

    Python动态属性与反射机制方式

    深入探索Python中的反射机制和动态属性的细节,对我们来说是编写具有适应性和高可扩展性程序的关键,本篇文章旨在通过详尽的概念介绍和精心设计的代码示例,加强您对这些核心概念的把握,并助您在实践中运用自如
    2024-06-06
  • Python反向传播实现线性回归步骤详细讲解

    Python反向传播实现线性回归步骤详细讲解

    回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值也随之发生变化。回归模型正是表示从输入变量到输出变量之间映射的函数
    2022-10-10
  • pandas groupby分组对象的组内排序解决方案

    pandas groupby分组对象的组内排序解决方案

    这篇文章主要介绍了pandas groupby分组对象的组内排序解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 对python中大文件的导入与导出方法详解

    对python中大文件的导入与导出方法详解

    今天小编就为大家分享一篇对python中大文件的导入与导出方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python 70行代码实现简单算式计算器解析

    Python 70行代码实现简单算式计算器解析

    这篇文章主要介绍了Python 70行代码实现简单算式计算器解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python如何在循环内使用list.remove()

    Python如何在循环内使用list.remove()

    这篇文章主要介绍了Python如何在循环内使用list.remove(),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • PyPy 如何让Python代码运行得和C一样快

    PyPy 如何让Python代码运行得和C一样快

    这篇文章主要介绍了如何让Python代码运行得和C一样快,由于 PyPy 只是 Python 的一种替代实现,大多数时候它都是开箱即用,无需对 Python 项目进行任何更改。它与 Web 框架 Django、科学计算包 Numpy 和许多其他包完全兼容,推荐大家多多使用
    2022-01-01
  • 解决python 执行sql语句时所传参数含有单引号的问题

    解决python 执行sql语句时所传参数含有单引号的问题

    这篇文章主要介绍了解决python 执行sql语句时所传参数含有单引号的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python matplotlib绘图风格详解

    Python matplotlib绘图风格详解

    从matplotlib的角度来说,绘图风格也算是图像类型的一部分,所以这篇文章小编想带大家了解一下Python中matplotlib的绘图风格,有需要的可以参考下
    2023-09-09
  • 基于opencv和pillow实现人脸识别系统(附demo)

    基于opencv和pillow实现人脸识别系统(附demo)

    人脸识别就是一个程序能识别给定图像或视频中的人脸,本文主要介绍了opencv和pillow实现人脸识别系统,本文不涉及分类器、训练识别器等算法原理,感兴趣的可以了解一下
    2021-11-11

最新评论