JavaScriptのテスト用ツールやライブラリの分類

いっぱいありすぎてわけわからなくなりがちなので整理のため

テストツールタイプ

タイプ 役割 ツール例
テストランナー Node.js(cli)やブラウザ上でテストを実行・ウォッチするためのツール Karma(ブラウザ), Mocha(cli), Jasmine(cli), Jest(cli), TestCafe(ブラウザ), Cypress(ブラウザ)
テストフレームワーク 構造的にテストを書くためのライブラリ Mocha, Jasmine, Jest, Cucumber, TestCafe, Cypress, Ava, tape
アサーション テストが返す結果が期待どおりかどうかを確認するためのライブラリ Chai, Jasmine, Jest, Unexpected, TestCafe, Cypress
モック、スパイ、スタブ いわゆるモック。例えばAPIの呼び出しなどの副作用がある部分を分離しそれらを置き換えるためのライブラリ Sinon, Jasmine, enzyme, Jest, testdouble
コードカバレッジ 書いたテストでどのくらいのコードを網羅できているかレポートするツール Istanbul, Jest, Blanket
ブラウザコントローラ シミュレータを利用して機能テストを行うためのツール Nightwatch, Nightmare, Phantom, Puppeteer, TestCafe, Cypress
ビジュアル回帰ツール 画像を使って前回のバージョンのものと比較して変更点を検知するためのツール Applitools、Percy、Wraith、WebdriverCSS

参考

original: qiita