开发规范

测试与交付证据

分清契约测试、数据库、应用 HTTP 与前端端到端证据。

浏览全部手册
本页目录
文档来源与 Markdown 原文

权威正文:ineed-core/docs/standards/testing.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。

开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。

下载 Markdown 原文 ↓

规则 CORE-TEST-001。当前测试使用 JUnit Jupiter、Spring Test 与响应式测试工具,依赖版本由 parent/POM 解析。业务场景详细要求见业务集成测试指南

分层报告

层级 证明什么 不单独证明什么
编译 类型、依赖、生成源码可用 业务行为正确
契约/单元 能力组合、生命周期、上下文、算法 真实 SQL、Spring 装配、权限代理
持久化集成 真数据库映射、约束、过滤、事务 HTTP 安全与前端流程
应用集成 Spring 装配、实际 HTTP、身份与权限 浏览器操作完成
前端 E2E 实际用户流程 所有后端边界组合

测试中 new Service(...) 不会自动具备事务或安全代理;Map/mock 仓储不证明真实数据库行为。不要根据类名含 Integration 就推断覆盖范围。

Core 验证命令

工作目录为 Core 根目录;工具链见环境准备。运行所有 Core 测试:

mvn test

与文档关键行为相关的定向入口:

mvn -pl ineed-core-tests/ineed-core-test-webmvc,ineed-core-tests/ineed-core-test-webflux \
  -am '-Dtest=*BusinessChainTest,*Tenant*Test,*ServiceCache*Test,*IntegrationEvent*Test' \
  -Dsurefire.failIfNoSpecifiedTests=false test

运行基础契约模块:

mvn -pl ineed-core-base -am test

-Dsurefire.failIfNoSpecifiedTests=false 允许上游模块没有匹配类;执行后仍须汇总目标 target/surefire-reports/TEST-*.xml,确认目标测试实际运行,不能接受零测试的假通过。避免把历史报告混入本次统计。

新测试应该断言什么

按业务结果命名用例,正向场景与错误路径配对。多表动作验证回滚与最终持久化;关系操作验证读取、替换、清空和删除过滤;租户与权限验证拒绝后无数据变化。

响应式使用 StepVerifier 或明确的订阅断言:创建 Publisher 不提前执行,订阅后完成或错误。同步与响应式场景表达同一业务语义。

修改小范围文档或风格不要求全量业务回归;修改公共生命周期、租户、事务或接口时扩大到受影响的框架与业务验证。

CI 与覆盖率

本仓当前未发现已纳入版本控制的 .github/workflows CI 工作流,也未在本次核查范围发现统一覆盖率阈值;不虚构百分比门槛。团队接入 CI 时先执行文档检查、样例所在模块编译和必要行为测试,再按环境提供数据库层验证。

本轮执行证据见验证记录。部署环境和未执行的数据库/HTTP 场景必须单独标注。

仍有疑问?按反馈清单整理复现信息 →