Jest
Jest(JavaScript単体テストフレームワーク)を使ってみる
- インストール方法
npm install --save-dev jest
- 実行方法
    - jestはデフォルトで__tests__フォルダ中のjavascritpをテストコードとして実行する
 
- jestは
npx jest
サンプル
test('test 1.', ()=>{
  expect(1+2).toBe(3);
});
設定について
- 以下で設定を追加できる
- package.jsonに記載する
- jest.config.jsに記載する
    - npx jest --initでconfigが作成される
 
- 実行時に–configオプションで指定したファイルに指定する
カバレッジ
npx jest --coverage
特定の関数をモックにする
- テスト対象
 function sum(a, b) {
   return a + b;
 }
 function minus(a, b) {
   return a - b;
 }
 module.exports = {
   sum : sum,
   minus : minus
 }
- モック化テスト
    - spyOnで置き換えられる。
 
 const calc = require('../calc');
 test('test sum.', ()=> {
   expect(calc.sum(1, 2)).toBe(3);
 });
 test('特定の関数についてmockを使用して特定の値を返却する', ()=> {
   // モックを設定する
   console.log('spyOnの前', calc.sum, calc.minus);
   jest.spyOn(calc, 'sum').mockReturnValue(5);
   console.log('spyOnの後', calc.sum, calc.minus);
   // モックを呼び出す
   expect(calc.sum(1,2)).toBe(5);
   // モックを元の関数に戻す
   calc.sum.mockRestore();
   console.log('mockRestoreの後', calc.sum, calc.minus);
   expect(calc.sum(1,2)).not.toBe(5);
 });
 test('特定の関数についてmockを使用して特定の関数を実行する', ()=> {
   jest.spyOn(calc, 'sum').mockImplementation((a,b) => {
     console.log('mock function');
     return 100;
   });
   expect(calc.sum(1,2)).toBe(100);
   jest.restoreAllMocks();
   expect(calc.sum(1,2)).toBe(3);
 });