Syntax Error.

[Sy] はじめての Jest

2018/02/28

今年こそテストを書いていきたいと思ってます。最近よく目にする Jest というのが良さそうなので使ってみます。

基本的にはこちらの公式サイトを参考に進めます。

⇒ Getting Started · Jest

1. Jest をインストールする

適当な作業ディレクトリを作って、移動します。

$ mkdir hello-jest
$ cd hello-jest

Jest をインストールします。テストのためのツールなので devDependencies としてインストールしておきます。

$ yarn add --dev jest
・
・
success Saved 331 new dependencies.
info Direct dependencies
└─ jest@22.4.2
info All dependencies
・
・
├─ jest-changed-files@22.2.0
├─ jest-cli@22.4.2
├─ jest-environment-node@22.4.1
├─ jest-leak-detector@22.4.0
├─ jest-resolve-dependencies@22.1.0
├─ jest-runner@22.4.2
├─ jest-serializer@22.4.0
├─ jest@22.4.2
・
・
・
・
✨  Done in 7.14s.

依存パッケージが 331 ありました。結構なボリュームです。

2. テスト対象となるモジュールを作る

sum.js というファイルを作り、足し算を行う関数をモジュール化します。

$ vim sum.js
(sum.js)

module.exports = (a, b) => {
  return a + b;
}

3. テストを作る

続いて sum.test.js というファイルを作り、sum.js のテストを行うためのコードを書きます。

$ vim sum.test.js
(sum.test.js)

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

4. テストを実行する

テストを実行してみます。

$ ./node_modules/.bin/jest
 PASS  ./sum.test.js
  ✓ adds 1 + 2 to equal 3 (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.384s
Ran all test suites.

無事テストが通ったのが確認できます。

package.json の scripts に以下のように書いておくと、

{
  "scripts": {
    "test": "jest"
  },
  "devDependencies": {
    "jest": "^22.4.2"
  }
}

これで Jest を実行することができるので楽です。

$ npm test

> @ test /Users/utano320/Documents/Develop/hello-jest
> jest

 PASS  ./sum.test.js
  ✓ adds 1 + 2 to equal 3 (3ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.067s
Ran all test suites.