分析业务流程什么时候适合断言?

什么样的print或者异常抛出适合做断言?

分支语句里面的。有判断,但没验证。

关键问题:assert 要断什么?

assert 的本质是:"我预期 X 应该是 Y,如果不是,就说明有 bug。"

所以你得先问自己:这个动作之后,预期结果是什么?

print 该变成什么?

print 有两种命运:

  1. 变成日志(logging),不是 assert
python 复制代码
print("执行_order_ticket") 
改为 
logger.info("执行_order_ticket")

它的作用是记录流程,不是判断对错。 所以变成日志,而不是 assert。

  1. 变成断言(如果它背后有验证逻辑)
python 复制代码
print(uname + ",请及时付款")
改成
assert "TOrder" in self.driver.current_url, "下单后未跳转到订单页"
python 复制代码
assert 条件, "失败时的提示信息"

"我预期下单后,网址里应该出现 TOrder。如果没有,就说明出 bug 了,报错告诉我。"

条件是当前页面是TOrder页面。代码含义是断言当前页面里有没有 TOrder,如果条件不满足(失败,没有跳转到TOrder_url),则提示下单后未跳转到订单页。

毕竟通过的话什么都不需要提示。

所以如果要把我的交互脚本的print改为断言的思维是判断:

"这行是在做动作,还是在验证结果?"

复制代码
做动作 → 保留,或改成日志

验证结果 → 改成 assert

功能测试和自动化测试的区别在于此

所以我们的主观判断可以通过assert判断替代。

自动化测试的本质就是:

复制代码
把功能测试用例里的"预期结果",翻译成一条条 assert。
相关推荐
段一凡-华北理工大学1 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化
深蓝AI1 小时前
ContextVar 到线程池就丢了?asyncio.to_thread 和 run_in_executor 实测
python
岁月宁静2 小时前
什么是 Agent:从"会聊天"到"会做事"
人工智能·python
岁月宁静3 小时前
AI 应用开发工程师简历怎么写:HR 初筛、技术复筛、面试追问,三道关卡各看什么?
人工智能·python·面试
来让爷抱一个3 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
小肝一下5 小时前
3.基础语法(3)
python
深蓝AI5 小时前
Python 子进程树:父进程被杀后,孙进程为何还在跑?
python
心祭丫丫6 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
爱你真是太好了6 小时前
Skill 索引瘦身与渐进加载
python
贾公子6 小时前
检测链路的容量规划——用 Little's Law 算清 QPS、并发与积压
后端·python