k01ken’s b10g

He110 W0r1d!

Jestを使ってJavaScriptの単体テストを行う

開発環境は、Windows 10 Pro(64bit) + node.js v14.17.0 + npm 6.14.13。

JavaScriptのテストフレームワークであるJestを使ってテストをしてみたいと思います。

1.チュートリアルを参考に、プロジェクトを作り、Jestをインストールするために以下のコマンドを1行ずつ入力します

cd c:\ && mkdir sample_jest && cd sample_jest
npm init -y
npm i -D jest

2.以下のプログラムをsum.jsという名前で保存します。

function sum(a,b){
  return a+b;
}

module.exports = sum;

3.次に、テストするための以下のプログラムをsum.test.jsという名前で保存します。

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

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

4.package.jsonのscriptsのtest部分を、jestに変更します。

{
  "scripts": {
    "test": "jest"
  }
}  

5.テストを実行するために、以下のコマンドを入力

npm test sum.test.js

そうすると、以下がその結果。
f:id:k01ken:20210525232851p:plain
きちんとテストが成功しました。

6.今度は逆に、意図的に間違った結果を出すために、sum.test.jsを以下のように書き換えて、再度、テストを実行してみます。

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

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

これを実行してみると、以下のような結果になりました。
f:id:k01ken:20210525233143p:plain
きちんと失敗してます。

あるいは、マッチャーを書き換えて、以下のようにもできます。

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

test('add 1 + 2 to not equal 4', () => {
  expect(sum(1,2)).not.toBe(4);
});

結果は以下のように成功します。
f:id:k01ken:20210525233831p:plain