新闻详情

新闻详情

首页 / 资讯中心 / 详情

test-guard - pytest

发布时间:2026/10/2 18:03:02来源:尧图网络
test-guard - pytest
Test Guard — Python / pytest 模式九条规则在 pytest 项目中的具体应用。在审查或编写 Python 测试时阅读此文件。规则 2Python 中的 mock 边界有理由的 mock 目标HTTP 客户端httpx、requests、aiohttp或使用respx/responses而不是原始 mockLLM SDK 调用openai、anthropic、litellm.completion等数据库会话当数据库不是测试主题时参见规则 9外部路径上的文件系统 I/Otmp_path夹具通常比 mock 更好时钟和随机性time.time、datetime.now、random优先使用freezegun或注入时钟无理由的 mock常见的智能体生成违规用MagicMock()充当 Pydantic 模型或数据类——请构造真实的东西模拟内部工具函数来隔离一个单元模拟json.loads/json.dumps或其他 stdlib 纯函数规则 3参数化# Violation: three copy-pasted tests differing by one valuedeftest_slug_lowercase():...deftest_slug_strips_spaces():...deftest_slug_handles_unicode():...# Fixpytest.mark.parametrize((raw,expected),[(Hello World,hello-world),( padded ,padded),(Café Menu,cafe-menu),],)deftest_slugify_normalizes_input(raw,expected):assertslugify(raw)expected规则 8真实的 Pydantic/数据类实例# Wrong — hides field typos and validation errorsstateMagicMock()state.user_id123state.statusACTIVE# Right — Pydantic validates the construction itselfstateUserState(user_id123,statusACTIVE)如果模型需要很多字段添加工厂夹具或使用factory_boy——不要退回到MagicMock。规则 9通过夹具使用真实数据库使用应用真实迁移的夹具例如带alembic upgrade head的会话级测试数据库以及每次测试回滚的函数级事务。pytest-postgresql、testcontainers或 SQLite 兼容回退都可以关键是当查询或持久化逻辑是测试主题时使用真实模式而不是 mock 的会话。pytest 特有的异味对任何内部内容断言mock.call_count N——规则 1 违规patch堆叠三层或更深——测试与实现耦合重构通过caplog断言没有调用者解析的消息的日志输出——规则 4 违规构建项目类 mock 的夹具——规则 8 违规让夹具构建真实对象
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

编译阶段全解析:从源码到可执行文件的完整流水线 2026/10/2 18:44:01

编译阶段全解析:从源码到可执行文件的完整流水线

天天跟编译器打交道的朋友,可能都遇到过这样的情况:终端里敲了一行gcc hello.c -o hello,屏幕上要么顺利退出,要么甩出一屏报错。报错里偶尔还会出现“编译阶段”这个词,比如“编译阶段发生了 segmentation fault”“在…

阅读更多 →
hindsight智能决策回溯系统:Python+NPM+Docker+OpenAI四件套实战 2026/10/2 18:44:01

hindsight智能决策回溯系统:Python+NPM+Docker+OpenAI四件套实战

1. 项目概述:hindsight 不是“事后诸葛亮”,而是一套可落地的智能决策回溯系统 “hindsight”这个词在日常语境里常被译作“后见之明”,带点调侃意味——事情办砸了才恍然大悟:“早知道就该那样做”。但放在工程实践和AI应用开发中…

阅读更多 →
Flutter鸿蒙版社区APP登录检测机制设计与实践 2026/10/2 18:44:01

Flutter鸿蒙版社区APP登录检测机制设计与实践

如果你做过社区类APP,一定遇到过这种场景:用户明明早上还登录着享家社区,下午打开却发现首页能看、圈子能逛,一准备发帖就被强制弹回登录页。这个问题在Flutter框架下开发HarmonyOS版本时,比在Android和iOS上要复杂得多…

阅读更多 →
OpenShell实战:打造跨Shell统一配置与插件体系的终端工作台 2026/10/2 18:44:01

OpenShell实战:打造跨Shell统一配置与插件体系的终端工作台

用过十几年命令行,我最近被问得最多的一个词就是 OpenShell。它不是个颠覆性发明,名称里写着“Open”和“Shell”两层意思:“开放”是它的方法论,“Shell”是它要解决的问题。说白了,OpenShell 是一套跨平台、跨 Shell…

阅读更多 →
JavaScript语句全解析:类型、执行逻辑与调试实战 2026/10/2 18:44:01

JavaScript语句全解析:类型、执行逻辑与调试实战

如果你正在学JavaScript,或者被人吐槽代码像一锅粥,我建议你先别急着上框架,把“JavaScript语句”这条根扎稳。语句是代码里真正执行动作的单元,比如声明变量、判断条件、循环遍历、抛出异常,全都按语句逐条进行。最近…

阅读更多 →
大模型参数调优实战:temperature、top_p、max_tokens 原理与批量调优策略 2026/10/2 18:43:55

大模型参数调优实战:temperature、top_p、max_tokens 原理与批量调优策略

参数体系这件事,很多人第一次接触时觉得不就是几个滑块嘛,拖一拖试试看呗。但真到了要把一个功能上线、要让输出稳定可控、要在成本和效果之间找平衡点的时候,你会发现这些参数之间的耦合关系远比想象中复杂。temperature 调高一点&#xff0…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉