为了少挨点骂,我学了这个 Python 关键字...
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?
函数参数检查:在函数开头使用assert确保参数满足特定条件。
def divide(x, y):
assert y != 0, "除数不能为0"
return x / y
数据结构不变性检查:在数据结构的操作中使用assert确保不违反不变性条件。
def remove_item(my_list, item):
assert item in my_list, "要移除的项不在列表中"
my_list.remove(item)
测试驱动开发:在编写测试用例时,使用assert验证预期结果。
def test_addition():
result = add(3, 4)
assert result == 7, "加法运算错误"
pytest的单元测试脚本
最后
希望大家在项目中能善用assert
,让代码更可靠,做好单元测试,少挨些骂。
- EOF -
关注「程序员的那些事」加星标,不错过圈内事
点赞和在看就是最大的支持❤️
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章