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. 01API契約の定義
  2. 02MoonBitモジュールの作成
  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(...) を使用します。
  • 仕様のサーフェスを検証できるよう、十分に内容の充実したテストを作成します。
検証する
  • moon check を実行し、仕様とテストの型チェックが通ることを確認します。
  • 実装がいくつか存在してから moon test を実行します。

テンプレート

  • スキャフォールディングとファイルテンプレートについては、references/templates.md を参照してください。

コメント