Mocha と を使用して簡単なテストを作成する Chai

Mocha と を 使用して基本的なテストを構築する Chai

Mocha と を 使用して基本的なテストを構築するには Chai 、次の手順に従います。

1. インストール Mocha および Chai: npm(Node Package Manager) を使用して、 Node.js プロジェクトに Mocha および をインストールします。 Chai プロジェクト ディレクトリで次のコマンドを実行します。

npm install mocha chai --save-dev

2. テスト ファイルを作成します。たとえば、新しいファイルを作成し、 使用 test.js する次の宣言をインポートします 。 Mocha Chai

const chai = require('chai');  
const expect = chai.expect;  
  
describe('Example Test Suite',() => {  
  it('should pass the test',() => {  
    expect(2 + 2).to.equal(4);  
  });  
});

3. テストを実行します。ターミナルを開き、 mocha  コマンドを実行してテストを実行します。 すべてが順調に進むと、ターミナルに結果が表示されます。

この基本的なテストでは、 Mocha と を使用して Chai 簡単な計算を確認します。 上の例では、 2 + 2 操作の結果が と等しいかどうかを確認します 4。 結果が正しければ、テストは成功します。

describe  およびブロック を追加すると it  、より複雑なテストを構築し、ソース コードのさまざまな部分をチェックできます。

Chai テスト用に、 や assert など、 が提供する他のアサーション メソッドを使用することもできることに注意してください should。 具体的な使用方法は、選択内容とテスト コードをどのように編成するかによって異なります。

 

アサーションとクエリを使用して関数の結果を検証する

Mocha と をテストに 使用する場合 Chai 、アサーションとクエリを使用して関数の結果を確認できます。 アサーションとクエリを使用して関数の結果を確認する例をいくつか示します。

1. expect アサーションと to.equal クエリを使用して、特定の値を返す関数の結果を確認します。

const result = myFunction();  
expect(result).to.equal(expectedValue);

2. 「expect」アサーションと to.be.true or to.be.false クエリを使用して、ブール値を返す関数の結果を確認します。

const result = myFunction();  
expect(result).to.be.true; // or expect(result).to.be.false;

3. `expect` アサーションと to.be.null or to.be.unknown クエリを使用して、null または未定義の値を返す関数の結果を確認します。

const result = myFunction();  
expect(result).to.be.null; // or expect(result).to.be.undefined;

4. expect アサーションと to.include クエリを使用して、値が配列または文字列に含まれているかどうかを確認します。

const result = myFunction();  
expect(result).to.include(expectedValue);

5. expect アサーションと to.have.lengthOf クエリを使用して、配列または文字列の長さを確認します。

const result = myFunction();  
expect(result).to.have.lengthOf(expectedLength);

Mocha これらの例は、アサーションとクエリを使用して Chai 関数の結果を確認する 多くの方法のうちのほんの一部です。 プロジェクトのテストのニーズに基づいて、適切なアサーションとクエリをカスタマイズして使用できます。

 

成功したテストケースと失敗したテストケースの作成

Mocha と を使用してテスト ケースを作成する場合は Chai 、成功シナリオと失敗シナリオの両方をカバーすることが重要です。 成功したシナリオと失敗したシナリオの両方のテスト ケースを作成する例を次に示します。

1. 成功したテストケース:

describe('myFunction',() => {  
  it('should return the expected result',() => {  
    // Arrange  
    const input = // provide the input for the function  
    const expected = // define the expected result  
  
    // Act  
    const result = myFunction(input);  
  
    // Assert  
    expect(result).to.equal(expected);  
  });  
});

2. 失敗テストケース:

describe('myFunction',() => {  
  it('should throw an error when invalid input is provided',() => {  
    // Arrange  
    const invalidInput = // provide invalid input for the function  
  
    // Act and Assert  
    expect(() => myFunction(invalidInput)).to.throw(Error);  
  });  
});

成功したテスト ケースでは、関数の入力と期待される結果を定義します。 次に、入力を使用して関数を呼び出し、結果が期待値と一致することをアサートします。

失敗テスト ケースでは、関数に無効な入力を指定し、関数がエラーをスローすることをアサートします。 これにより、関数が無効な入力またはエラー状態を適切に処理できるようになります。

テスト ケースで成功シナリオと失敗シナリオの両方をカバーすることで、コードが徹底的にテストされ、さまざまな状況を適切に処理できるようになります。