社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

为了少挨点骂,我学了这个 Python 关键字...

程序员的那些事 • 1 年前 • 241 次点击  
最近我的项目bug有点多,所以最近我每天都会挨测试人员的骂。

为了少挨点骂,我打算“窥探”下自动化测试人员是怎么测我的代码逻辑的。

于是我悄悄地顺了一份自动化测试的代码。

发现测试代码里有极多的assert语句。

啥是assert语句?

Python语言中,有assert关键字的语句,被称为断言语句。

断言是可用于在开发过程中设置健全性检查的语句。

断言允许开发人员通过检查某些特定条件是否仍然成立来测试代码的正确性。

assert关键字用于检查一个条件是否为真,如果条件为假,则会抛出AssertionError异常。

语法:

assert boolean_expression, message

它通常用于调试和测试阶段,用于验证程序的正确性。例如:

x = 5
assert x > 0"x必须大于0"

上述代码会检查变量x是否大于0,如果条件为假,则会抛出AssertionError异常,并且可以指定一个可选的错误消息。

但用raise同样可以手动抛出异常,为什么测试和调试要用assert关键词?

assert VS raise

在Python中,除了assert 之外,的确还有raise关键字可以用于手动抛出异常。

那么,为什么在测试和调试中我们更倾向于使用assert而不是raise呢?

  • 可读性:assert语句更具可读性,一目了然地表达了我们的断言意图。

  • 调试信息:AssertionError异常会包含详细的调试信息,方便快速定位问题。

在实际项目中如何使用assert?

  1. 函数参数检查:在函数开头使用assert确保参数满足特定条件。
def divide(x, y):
    assert y != 0"除数不能为0"
    return x / y
  1. 数据结构不变性检查:在数据结构的操作中使用assert确保不违反不变性条件。
def remove_item(my_list, item):
    assert item in my_list, "要移除的项不在列表中"
    my_list.remove(item)
  1. 测试驱动开发:在编写测试用例时,使用assert验证预期结果。
def test_addition():
    result = add(34)
    assert result == 7"加法运算错误"

pytest的单元测试脚本

基于pytest模块的测试代码

最后

希望大家在项目中能善用assert,让代码更可靠,做好单元测试,少挨些骂。


- EOF -

推荐阅读  点击标题可跳转

1、马斯克硬核迁移服务器

2、中国数学老师在P站教微积分年入百万

3、放弃亚马逊、谷歌!!!

4、监控员工微信聊天记录,方法还这么多!


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/164263
 
241 次点击