Jestとは、JavaScriptのテスト用のフレームワークです。
ここでは、Node.jsがインストールされていることを前提に、Jestを試してみます。
公式ドキュメントであるGetting Startedを参考に、説明が割愛されている箇所を補いながら説明していきます。
【前提】
・WindowsOSで作業を行います。
・Node.jsを事前にインストールし、”Node.js Command Prompt”でコマンド発行します。
・今回の確認では、C:\tmp\ で作業を行います(以下「作業フォルダ」)。
【インストール】
・cdコマンドで作業フォルダに移動します。
1 |
cd C:\tmp\ |
・npmコマンド(ライブラリのインストール用のコマンド)を発行しJestを取得します。
1 |
npm install --save-dev jest |
・コマンドを発行すると、以下のように出力されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
C:\tmp>npm install --save-dev jest npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142 npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN saveError ENOENT: no such file or directory, open 'C:\tmp\package.json' npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^2.1.2 (node_modules\jest-haste-map\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.1: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN enoent ENOENT: no such file or directory, open 'C:\tmp\package.json' npm WARN tmp No description npm WARN tmp No repository field. npm WARN tmp No README data npm WARN tmp No license field. + jest@26.6.3 added 511 packages from 351 contributors and audited 512 packages in 92.123s 23 packages are looking for funding run `npm fund` for details found 0 vulnerabilities C:\tmp> |
・作業フォルダ直下に、以下のようなフォルダが作成されれば成功です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
C:\tmp>dir node_modules\jest ドライブ C のボリューム ラベルは です ボリューム シリアル番号は です C:\tmp\node_modules\jest のディレクトリ 2021/01/06 21:45 <DIR> . 2021/01/06 21:45 <DIR> .. 2021/01/06 21:44 <DIR> bin 2021/01/06 21:44 <DIR> build 1985/10/26 17:15 1,086 LICENSE 2021/01/06 21:45 <DIR> node_modules 2021/01/06 21:45 2,084 package.json 1985/10/26 17:15 551 README.md 3 個のファイル 3,721 バイト 5 個のディレクトリ バイトの空き領域 C:\tmp> |
※なお、yarnコマンドでも取得できます。
【実行準備】
・作業フォルダに、”package.json”を作成します。内容は以下の通りです。
1 2 3 4 5 |
{ "scripts": { "test": "jest" } } |
※これで、npmコマンドの引数に”test”を指定すると、コマンド”jest”が発行されるようになります。
【テスト対象のスクリプト作成】
・作業フォルダに、”sum.js”を作成します。内容は以下の通りです。
1 2 3 4 |
function sum(a, b) { return a + b; } module.exports = sum; |
【テストコード作成】
・作業フォルダに、”sum.test.js”を作成します。内容は以下の通りです。
1 2 3 4 5 |
const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); }); |
【実行】
・npmコマンドによりテストを実行します。
1 |
npm test |
・以下のように、作業フォルダ直下のテストコードが実行されれば成功です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
C:\tmp>npm test > @ test C:\tmp > jest PASS ./sum.test.js (7.241 s) √ adds 1 + 2 to equal 3 (10 ms) Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 23.654 s Ran all test suites. C:\tmp> |
いかがでしたでしょうか。
JavaにJunitがあるように、JavaScriptにもJestという自動テストツールがあります。
後の改修を楽にするためにも、可能なら自動テストツールを導入した方が良いでしょう。
コメント