测试框架原则(PRINCIPLES.md)
测试框架原则PRINCIPLES.md本文件是宪法级约束不可违背mock 测试框架的每一次设计、每一行测试、每一次修改都必须符合以下原则。原则为定论不是建议。若实现与原则冲突改实现若原则之间冲突以更高编号原则优先编号小者优先。本文件收录用户明确提出的原则原话逐条展开为「阐述 示例」。新增原则必须由用户确认后追加。1. 测试为 AI 设计阐述人类只负责用自然语言描述测试目标“要测什么、期望什么行为”不写具体测试代码AI 自动把目标翻译为实现并反过来驱动框架补齐能力。因此框架本身必须结构化、可追溯、断言明确每一步可被 AI 读取、可被 grep 检索、断言一眼可读让 AI 能仅凭框架输出判断对错。示例用户说测结算幂等框架/测试就把这条自然语言目标落到SETTLE_SEMANTICS.md的具体断言重复投递相同 token 不得重复落账断言语句明确写出期望值AI 依据断言结果直接给出通过/失败 证据而不是靠人工读日志猜测。2. 集成测试原则阐述当用户要求的是集成测试时禁止退化为很小的单点测试。必须把依赖的具体部分——由用户明确给定的那部分——纳入测试范围并按用户要求构建 mock 测试环境与脚本从客户端 UI 开始一步一步测到服务器走完整个全流程UI 事件 → 网络 → 服务器 → 状态回包 → UI 渲染而不是只测中间某一个孤立的函数。示例测杠后补牌结算不能只测 settle 函数本身要起 mock 环境脚本从麻将 UI 点杠出发驱动路由到服务器结算节点回包后再断言 UI 渲染出了正确结果全程可回放、可追溯。3. 测试标准原则阐述不得恶意降低测试标准来让测试通过。测试要按本当实现的 PRD 需求目标来构建而不是单纯按现有代码实现来构建——代码怎么写不代表需求就是什么。只有物理事实上不可能达成的目标才能调低标准这是硬性规定不允许实现麻烦、框架不支持这类理由。测试用例覆盖足够时mock 必须保证代码可编译、可运行若运行结果脱离预期优先怀疑测试目标写错了目标与 PRD 不符、断言写错其次才怀疑被测代码。示例PRD 要求断线重连后玩家状态不丢即使当前代码就是会丢测试也必须按 PRD 写断言并失败而不是把断言改成允许丢。调低标准仅当目标在物理上不可达成如 mock 无法模拟真实网络延迟到毫秒级时才允许且必须写明理由。4. 状态一致性原则阐述有状态帧循环游戏帧循环驱动测试核心是状态客户端状态、服务器状态、客户端-服务器状态且客户端 UI 状态 客户端状态这条等式不可违背。服务器什么状态UI 就必须渲染什么状态不能缺少渲染UI 显示超过服务器及设计预期 根本问题。输入确定性 → 输出确定性同样的输入序列必须产生同样的状态序列不符预期必是 BUG不允许用顺序/时序问题含糊带过。示例服务器把金币从 100 降到 50 并回包UI 必须立刻渲染出 50若 UI 仍显示 100是渲染缺失 BUG若 UI 显示了服务器从未下发的状态如凭空多出 10 金币是超出预期的根本问题。同一操作序列重跑两次状态演进必须完全一致。5. 测试定位 BUG 原则阐述测试的目的是用正确的测试定位 BUG然后修复它。不是把测试改到能通过。测试失败时先怀疑被测代码与目标语义禁止为了绿灯而删断言、改断言、放宽范围、跳过用例。示例断言失败 → 先查是目标/断言写错原则 3 优先怀疑还是被测代码确有缺陷若是代码缺陷修复代码唯一允许改测试的情况是证明测试本身与 PRD 目标相悖并写明证据改后仍须覆盖原目标。6. 框架可改进原则阐述任何人都可以修改框架进行改进框架不是已定型不可动的黑盒。当框架不能支持某个测试或对某个测试覆盖不完整时必须补充、改进框架而不是绕过或降级该测试。最终目标尽可能模拟真实环境。测试本身不可靠mock 失实、时序失真则测试结论就是错的——框架改进服务于测试可信度。示例测试需要模拟服务器重启后玩家断线重连而当前 mock 没有节点重启能力 → 给框架补节点生命周期/重启注入而不是把该测试标跳过或简化成直接调用重连函数。7. 系统边界原则阐述畅玩阁与麻将是同一个系统的两个模块不是两个独立系统smallgame小游戏与其 UI 同样同属该系统。因此测试必须两者都覆盖不能只测麻将本身而漏掉畅玩阁/小游戏。一个改动若同时影响两个模块必须对两个模块都建立并运行测试。示例结算走麻将链路、入口在畅玩阁大厅测试必须从畅玩阁入口进入并走到麻将结算验证跨模块全链路不能只测麻将的 settle 而假设畅玩阁反正没改。8. 目录分类原则阐述docs/、scripts/、tests/下的所有内容均按系统类型分类存放mahjong/、mahjong_ui/、smallgame/等不混放。文档归文档目录、脚本归脚本目录、测试归测试目录同一系统的三类内容放在同名子目录下跨系统内容框架级单列。示例麻将服务器语义 →docs/mahjong/SETTLE_SEMANTICS.md麻将 UI 行为 →docs/mahjong_ui/UI_BEHAVIOR.md对应测试 →tests/mahjong/、tests/mahjong_ui/框架级说明 →docs/ARCHITECTURE.md。禁止把系统 A 的测试脚本塞进系统 B 的目录。9. 真实模拟原则阐述时间、配置、控件均尽可能真实时间用多物理时钟各节点独立真实计时而不是一个全局假时钟拍平配置用真实 .tab 配置表加载而不是写死的硬编码数值控件用真实 XML 控件树与 UI 声明同源音效用真实语音/音效跟踪能跟踪到具体音效文件的触发与播放。越接近真实环境测试结论越可信见原则 6。示例延迟测试必须用独立的物理时钟给不同节点计时验证超时/重发逻辑在真实时序下成立配置必须走tab_loader读真实 .tab 表表里把超时改成 3000ms 时测试行为跟着变而不是在测试里硬编码 5000ms。10. 调用堆栈原则阐述框架要诚实记录调用堆栈——真实记录谁调用了谁、经过哪些链路到达这里不裁剪、不美化、不伪造。完整真实的堆栈既便于定位 BUG直接看到失败链路也便于 AI 用 grep 搜索按函数名/链路关键字即可检索到相关记录与断言。示例一次 UI→路由→结算→回包的调用堆栈如实记录UI_CLICK → ROUTE_SEND → SCENE_FORWARD → SETTLE_APPLY → UI_RENDER每一跳BUG 出现在SETTLE_APPLY时grepSETTLE_APPLY就能搜出全部相关调用记录与断言上下文而不用人工重放。11. 流程正确则测试必过原则宪法级如果流程是正确的测试就应该通过只有流程不正确测试才会失败。对 AI 而言测试没跑通 必须去找问题并修复——不管问题是产品代码 BUG、框架缺口、还是测试目标编写错误。严禁把跑不通的测试搁置、跳过、或标记为’预期失败’而不修。没跑通就得找问题找出来就得改改完必须重跑验证。

相关新闻

笔试强训 Day 33:跳台阶扩展问题、包含不超过两种字符的最长子串、字符串的排列

笔试强训 Day 33:跳台阶扩展问题、包含不超过两种字符的最长子串、字符串的排列

Day 33 跳台阶扩展问题 解题思路:可以把跳跃过程先看成连续的 n 个“1级台阶”。 以 n 3 为例: 1 1 1这 3 个 1 之间有 n - 1 2 个间隙: 1 | 1 | 1每个间隙有两种选择: 断开:表示前后两段是两次跳跃不断开&am…

2026/8/4 18:27:19 阅读更多 →
小红书内容永久保存终极指南:3种方法让喜欢的内容永不丢失

小红书内容永久保存终极指南:3种方法让喜欢的内容永不丢失

小红书内容永久保存终极指南:3种方法让喜欢的内容永不丢失 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…

2026/8/4 18:27:19 阅读更多 →
【限时开放】AI微交互A/B测试沙盒环境(含LLM驱动的微动效生成器):仅剩87个企业内测名额

【限时开放】AI微交互A/B测试沙盒环境(含LLM驱动的微动效生成器):仅剩87个企业内测名额

更多请点击: https://intelliparadigm.com 第一章:AI微交互设计的范式演进与核心价值 AI微交互设计已从早期的命令式响应模式,逐步演化为以意图理解、上下文感知和渐进式反馈为核心的智能协同范式。这一演进并非单纯技术驱动,而是…

2026/8/4 18:27:19 阅读更多 →

最新新闻

Sigil EPUB编辑器:从入门到精通的免费电子书制作终极指南

Sigil EPUB编辑器:从入门到精通的免费电子书制作终极指南

Sigil EPUB编辑器:从入门到精通的免费电子书制作终极指南 【免费下载链接】Sigil Sigil is a multi-platform EPUB ebook editor 项目地址: https://gitcode.com/gh_mirrors/si/Sigil 还在为制作专业的EPUB电子书而烦恼吗?你是否曾经因为复杂的代…

2026/8/4 22:45:14 阅读更多 →
Sigil:5大核心功能打造专业级免费电子书编辑器

Sigil:5大核心功能打造专业级免费电子书编辑器

Sigil:5大核心功能打造专业级免费电子书编辑器 【免费下载链接】Sigil Sigil is a multi-platform EPUB ebook editor 项目地址: https://gitcode.com/gh_mirrors/si/Sigil 在数字出版时代,一款优秀的开源电子书编辑器是创作者必备的工具。Sigil作…

2026/8/4 22:45:14 阅读更多 →
Loop:免费的macOS窗口管理神器,让桌面管理变得优雅简单

Loop:免费的macOS窗口管理神器,让桌面管理变得优雅简单

Loop:免费的macOS窗口管理神器,让桌面管理变得优雅简单 【免费下载链接】Loop Window management made elegant. 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 你是否厌倦了在多个窗口间不停拖拽、调整大小的繁琐操作?Loop…

2026/8/4 22:45:14 阅读更多 →
量化高性能服务框架 Tornado 全面解析(上):异步非阻塞的核心能力与场景落地

量化高性能服务框架 Tornado 全面解析(上):异步非阻塞的核心能力与场景落地

前言在量化交易体系中,实时行情推送、高并发策略接口、异步数据处理这类场景对服务端性能有着严苛要求,传统同步 Web 框架往往难以承载海量长连接与低延迟诉求。本文将为大家拆解一款专为高性能场景设计的 Python 框架 —— Tornado,从基础定…

2026/8/4 22:45:14 阅读更多 →
《普林斯顿微积分读本》一书的错误观点:dy/dx不是分数

《普林斯顿微积分读本》一书的错误观点:dy/dx不是分数

《普林斯顿微积分读本》一书的错误观点:dy/dx不是分数 黄小宁 该书有:dy/dx根本不是一个分数,而它是当Δx->0时分数Δy/Δx的极限。 此观点使学生对导数只有一知半解的肤浅认识。黄小宁证明了dy/dx与Δy/Δx一样是分数,见图片中…

2026/8/4 22:45:14 阅读更多 →
终极免费手机号码定位解决方案:专业级地理位置查询工具

终极免费手机号码定位解决方案:专业级地理位置查询工具

终极免费手机号码定位解决方案:专业级地理位置查询工具 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mir…

2026/8/4 22:44:14 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →