テストコード練習1

2894 ワード

昨日の面接の影響で、テストコードに興味を持ちました.私がフィールドコードを弾いたとき、外星語の出現のように、私は本当に崩壊しただけで、です.
  • 话のテストコードを闻くだけで冗谈とか胜手に言ってこれは何なのか大概に勉强したい自己反省
  • 面接が終わったら、どうやって使うのか知りたいです.だからこれはベロフトさんの古い文章ですが、簡単なテストコードの位置付けを発見しました:JavaScriptテストの基礎
  • は大変ですが、ちょっと試してみたいです.他の人も理解できる言葉を理解できるコードを作りたいです.そして良い方法を考えたいという小さな気持ちから….
  • (練習は複数のテストツールのJestを使用して作成します...)

    優先パラメータ

  • 糸またはnpmは取り付け可能ですが、npmを敷いたので利用しました.
    (最近の傾向もそうですが、ベロフォードもガーゼがおすすめみたい…)
  • ディレクトリとnpm init -y
  • の作成
    ここにjest npm install --save jestをインストール

    私の最初のテスト!

  • 簡単な関数ファイルをテスト対象として作成する
  • // sum.js
    
    function sum(a, b) {
      return a + b;
    }
    
    module.exports = sum; // 내보내기
    同じディレクトリ
  • にテストファイル
  • を作成する.
    //sum.test.js
    
    const sum = require('./sum');
    
    test('1 + 2 = 3', () => {
      expect(sum(1, 2)).toBe(3);
    });
  • test:新しいテスト例の関数を作成し、使用可能な「it」操作方法は「test」と同じ
  • です.
  • expect:ケースに対する期待値を追加します.sumという名前の関数に1と2を入れると、3が得られます.
  • toBe:matchersと呼ばれる関数で、特定の条件が満たされているかどうか、実行されているかどうか、エラーが発生しているかどうかを決定します.ここでtoBeは,我々が決定した結果値
  • を示す.
  • テスト
  • を実行
  • 端末を開く、npm testコマンド
  • を入力する.
  • !ベロフォードのブログにpakageがありますjsonにscriptsを追加させてもらいましたが、行ってみるとスクリプトに何かが入っていたので、直接コマンドを入力しました.
  •  PASS  ./sum.test.js
      sum
        ✓ calculates 1 + 2 (1 ms)
        ✓ calculates all numbers (1 ms)
    
    Test Suites: 1 passed, 1 total
    Tests:       2 passed, 2 total
    Snapshots:   0 total
    Time:        0.14 s, estimated 1 s
    Ran all test suites.
    
    Watch Usage: Press w to show more.
  • がんばれ!上記結果
  • を得る.

    複数のテストケースをバンドルする必要がある場合

  • describleの使用

  • テストケースを作成するときは、キーワードdescribeを使用して複数のテストケースを組み合わせることができます.

  • sum.jsファイルに新しい関数を追加
  • // sum.js
    function sum(a, b) {
      return a + b;
    }
    
    function sumOf(numbers) {
      let result = 0;
      numbers.forEach(n => {
        result += n;
      });
      return result;
    }
    
    // 각각 내보내기
    exports.sum = sum;
    exports.sumOf = sumOf;
    
    // sumjs 밑에 sumOf라는 새로운 함수 생성
    // 여기서 궁금한 점은 함수 표현식으로 사용하려고 했는데 오류가 뜬다. 선언을 해야한다는 오류였는데 왜일까..?
    // 그리고 앞서 썼던 module.exports = sum; 이 식은 왜 쓰지 않는걸까..?
  • sum.test.jsファイル
  • にテストをパッケージ化
    const { sum, sumOf } = require('./sum');
    
    describe('sum', () => {
      it('calculates 1 + 2', () => {
        expect(sum(1, 2)).toBe(3);
      });
    
      it('calculates all numbers', () => {
        const array = [1, 2, 3, 4, 5];
        expect(sumOf(array)).toBe(15);
      });
    });
    
    // 위와 같이 describe로 감싸주고 여러 테스트 케이스를 묶을 이름으로 'sum'을 지정하고 
    안에 콜백의 형태로 실행될 케이스들을 넣어준다.