【モカ】

Mocha とは?

💡 テストの「カフェ」——好みのトッピングを自由に選べるフレームワーク
📌 このページのポイント
Mocha の柔軟な組み合わせ Mocha テストフレームワーク(describe / it) 組み合わせ自由 アサーション Chai / assert / should モック Sinon / testdouble レポーター spec / dot / nyan 比較: Jest = フレームワーク + アサーション + モック + レポーター(全部入り)
Mocha は好きなライブラリを組み合わせて使う
ひよこ ひよこ

Mochaってどんなツールなの?

ペンギン先生 ペンギン先生

JavaScriptのテストを書くためのフレームワークだよ。describe(説明)とit(テスト内容)というブロックでテストを階層的に整理できるんだ

ひよこ ひよこ

Jestとは何が違うの?

ペンギン先生 ペンギン先生

Jestは「全部入り」で、アサーションモックカバレッジも最初から含まれているよ。Mochaは「フレームワーク部分だけ」を提供して、アサーションにはChaiを、モックにはSinonを、みたいに好きなライブラリを組み合わせるスタイルなんだ

ひよこ ひよこ

どっちを選べばいいのかな?

ペンギン先生 ペンギン先生

手軽に始めたいならJestがおすすめだけど、既存プロジェクトで細かくカスタマイズしたい場合や、特定のアサーションライブラリを使いたい場合はMochaが向いているよ

ひよこ ひよこ

同期のテストもできるの?

ペンギン先生 ペンギン先生

もちろん。コールバックPromiseasync/awaitの3パターンすべてに対応しているよ。doneコールバックを使う古いスタイルから、async関数でawaitする現代的な書き方まで選べるんだ

ひよこ ひよこ

最近はMochaよりJestVitestが主流みたいだけど、まだ使われてるの?

ペンギン先生 ペンギン先生

新規プロジェクトではJestVitestが多いけど、大規模な既存プロジェクトではMochaがまだ現役だよ。特にNode.jsのサーバーサイドテストでは根強い人気がある。レポーター機能の豊富さはMochaの大きな強みで、CI環境でのテスト結果レポート出力にこだわるチームには今でも選ばれているんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Mocha」って出てきたら「JSテストを自由にカスタマイズできるフレームワーク」と思えればだいたいOK!
📖 おまけ:英語の意味
「Mocha」 = モカ(コーヒーの品種名)
💬 コーヒーの「モカ」が名前の由来。JavaScriptのテストフレームワークにはJasmine(お茶)やChai(チャイ)など飲み物系の名前が多いよ
← 用語集にもどる