mcpField
M
moonbit-spec-test-development

moonbit-spec-test-development

github.com/moonbitlang测试与质量34249 次安装6 周前更新
代码仓库

关于 moonbit-spec-test-development

MoonBit Spec & Test Development 是用于在实现前定义 API 契约并编写类型检查测试的技能。它可搭建 MoonBit 模块,并通过 `moon check` 验证规格和测试。

主要功能

  1. 01定义 API 契约
  2. 02搭建 MoonBit 模块
  3. 03编写规格驱动测试
  4. 04使用 `moon check` 检查类型

适用场景

  1. 01在实现前确定 API 范围
  2. 02依据正式契约检查测试
  3. 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