关于 swift-testing-code-review
面向代码审查者的 Swift Testing 审查技能,要求按顺序确认审查范围和代码依据,再记录问题。它提供检查清单,并链接到常见测试模式的专题参考。
主要功能
- 01按序检查范围与代码特征
- 02审查问题的证据要求
- 03断言与测试组织检查清单
- 04异步和参数化测试参考
适用场景
- 01审查 Swift Testing 断言
- 02检查参数化测试行为
- 03评估异步测试模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ existential-birds/ beagle --skill swift-testing-code-review安装后在 Claude Code 中输入/swift-testing-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/async-testing.mdexpect-macro.mdorganization.mdparameterized.md详细介绍
Swift Testing 代码审查
硬性门槛
记录 Swift Testing 审查发现前,必须按顺序完成。搭配 review-verification-protocol 使用,以遵循通用审查规则。
- **范围:**你有一份明确的待审
.swift路径列表(或用户指定的单个文件)。**通过:**在工作笔记中记录这些路径,或写一行:No Swift files in scope——然后停止,不报告任何发现。 - **Swift Testing 表面特征:**对于每个被视为 Swift Testing 代码的路径,确认该文件中出现
import Testing或@Test/#expect/#require/@Suite(打开文件或搜索)。**通过:**每个提出审查意见的文件至少匹配一项;或者以一行说明原因(例如仅使用 XCTest),并将该文件排除在 Swift Testing 审查之外。 - **证据与协议:**提出任何问题前,先加载 review-verification-protocol。**通过:**每项发现都符合该技能的锚点规则;任何违反审查清单的项目都引用
[FILE:LINE]证据。如果报告的问题数为零,请在审查摘要中写明Protocol applied; no Swift Testing issues(或等效表述)。
快速参考
| 问题类型 | 参考资料 |
|---|---|
| #expect 与 #require、表达式捕获、错误测试 | references/expect-macro.md |
| 带参数的 @Test、特征、zip() 陷阱 | references/parameterized.md |
| confirmation、异步序列、完成处理程序 | references/async-testing.md |
| @Suite、标签、并行执行、.serialized | references/organization.md |
审查清单
- 直接将表达式嵌入
#expect(而非预先计算布尔值) -
#require仅用于前置条件,#expect用于断言 - 错误测试检查具体类型(而非通用的
(any Error).self) - 成对的参数化测试使用
zip()(而非笛卡尔积) - 参数化测试的预期值不包含对实现逻辑的重复模拟
- 使用
confirmation(expectedCount:)测试异步序列 - 完成处理程序使用
withCheckedContinuation,而非confirmation - 仅在必要时(共享资源)应用
.serialized - 若互斥的同级套件均已序列化,则将它们嵌套在父级套件下
- 不假定不同
@Test函数之间状态会持久保留 - 禁用的测试附有说明和错误链接
何时加载参考资料
- 审查 #expect 或 #require 的用法 -> expect-macro.md
- 审查带参数或特征的 @Test -> parameterized.md
- 审查 confirmation 或异步测试 -> async-testing.md
- 审查 @Suite 或测试组织方式 -> organization.md
审查问题
#expect中预先计算的布尔值是否会丢失诊断上下文?#require是否会过早停止测试,而不是揭示所有失败?- 多参数化测试是否会意外产生笛卡尔积?
- 数组长度不等时,
zip()是否可能静默丢弃测试用例? - 是否错误地使用
confirmation测试完成处理程序?
评论
支持 Markdown