【Python】assert(断言)的使用

本文旨在对于个人知识的梳理以及知识的分享,如果有不足的地方,欢迎大家在评论区指出


什么是assert断言

在测试样例中,执行完测试样例之后,最后一步要判断是pass还是fail,自动化测试脚本中一般吧这种生成测试结果的方法称为断言

如何使用assert断言
  • 简易Demo
    # 首先assert后面需要跟布尔类型的值
    
    if __name__ == "__main__":
    	a = int(input("请输入a的值:"))
    	assert a==4
    
    当我们输入4时,可以发现程序并没有报错,而当我们输入1时,程序报错如下:
    在这里插入图片描述
    可以发现AssertionError后面并没有错误的信息,如果想要有的话,可以将上面的程序稍加修改:
    if __name__ == "__main__":
    	a = int(input("请输入a的值:"))
    	assert a==4, Exception("a的值不为4")
    
    这时修改后的报错(是不是清晰了好多):
    在这里插入图片描述
  • 复杂案例
    assert断言一般可以用于检查某个函数的功能是否实现完整,这里我们可以用一个二分函数来举例:
    def binary_search(arr, x):
    	l, r = 0, len(arr)-1
    	while l < r:
    		mid = l + r + 1>> 1
    		if arr[mid] > x:
    			r = mid - 1
    		else:
    			l = mid
    	return l if arr[l]==x else -1
    	
    def test():
    	arr = [1, 3, 5, 6, 7]
    	assert binary_search(arr, 3)==1
    	assert binary_search(arr, 8)==-1
    	assert binary_search(arr, -1)==-1
    	assert binary_search(arr, 7)==4
    if __name__ == "__main__":
    	test()
    
    这里介绍一个用于测试的第三方库pytest,其安装方式就是在cmd框中输入pip install -U pytest,即可安装,对于上面的案例,是通过的,我们使用pytest 文件名测试之后,得到的测试结果如下:
    在这里插入图片描述
    如果我们将assert binary_search(arr, 3)==1改为assert binary_search(arr, 3)==0,则就会报错,结果如下:
    在这里插入图片描述
    可以看出,错误信息中给出来程序返回的结果为1,而我们指定的结果为0,二者不一致,这样可以更加方便我们的调试
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值