moonbit-spec-test-development について
MoonBit Spec & Test Developmentは、実装前にAPI契約を定義し、型チェック可能なテストを作成するスキルです。MoonBitモジュールを用意し、`moon check`で仕様とテストを検証します。
主な機能
- 01API契約の定義
- 02MoonBitモジュールの作成
- 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(...)を使用します。 - 仕様のサーフェスを検証できるよう、十分に内容の充実したテストを作成します。
検証する
moon checkを実行し、仕様とテストの型チェックが通ることを確認します。- 実装がいくつか存在してから
moon testを実行します。
テンプレート
- スキャフォールディングとファイルテンプレートについては、
references/templates.mdを参照してください。
コメント
Markdown 対応