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
そうすると、以下がその結果。
きちんとテストが成功しました。
6.今度は逆に、意図的に間違った結果を出すために、sum.test.jsを以下のように書き換えて、再度、テストを実行してみます。
const sum = require('./sum'); test('add 1 + 2 to equal 4', () => { expect(sum(1,2)).toBe(4); });
これを実行してみると、以下のような結果になりました。
きちんと失敗してます。
あるいは、マッチャーを書き換えて、以下のようにもできます。
const sum = require('./sum'); test('add 1 + 2 to not equal 4', () => { expect(sum(1,2)).not.toBe(4); });
結果は以下のように成功します。