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という自動テストツールがあります。
後の改修を楽にするためにも、可能なら自動テストツールを導入した方が良いでしょう。
 
  
  
  
  

コメント