关于 moonbit-spec-test-development
MoonBit Spec & Test Development 是用于在实现前定义 API 契约并编写类型检查测试的技能。它可搭建 MoonBit 模块,并通过 `moon check` 验证规格和测试。
主要功能
- 01定义 API 契约
- 02搭建 MoonBit 模块
- 03编写规格驱动测试
- 04使用 `moon check` 检查类型
适用场景
- 01在实现前确定 API 范围
- 02依据正式契约检查测试
- 03创建新的 MoonBit 模块
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ moonbitlang/ skills --skill moonbit-spec-test-development安装后在 Claude Code 中输入/moonbit-spec-test-development确认已加载。
附带文件references/templates.md
详细介绍
MoonBit 规范与测试开发
概述
在 <pkg>_spec.mbt 中定义正式的 API 契约,针对该契约编写经过类型检查的测试,并搭建最简 MoonBit 模块,以便在开始实现工作前通过 moon check。
工作流
确认 API 范围(如有需要)
- 根据上下文推断包名;只有在存在歧义时才询问。
- 确认 API 范围:核心类型、入口点、错误类型以及是否需要版本控制。
使用 moon new 搭建模块(新项目优先)
- 如果未使用
moon new,则改用moon.mod.json和moon.pkg.json模板。
编写正式规范(<pkg>_spec.mbt)
- 对所有稍后才会实现的类型和函数使用
#declaration_only。 - 带有
#declaration_only的函数仍必须包含函数体:{ ... }。 - 将规范作为契约:创建后视为只读;实现应放在同一包下的新文件中。
- 对需要在测试中构造的类型使用
pub(all);对不透明类型使用pub。
编写规范驱动的测试
- 在同一包中创建
<pkg>_easy_test.mbt、<pkg>_mid_test.mbt和<pkg>_difficult_test.mbt(或类似文件)。 - 优先使用公开 API 编写黑盒测试;对于复杂值,使用
@json.inspect(...)。 - 尽量编写足够丰富的测试,以验证规范中定义的 API 范围。
验证
- 运行
moon check,确认规范和测试通过类型检查。 - 仅在已有部分实现后运行
moon test
模板
- 查看
references/templates.md,了解模块搭建和文件模板。
评论
支持 Markdown