TypeScript のモカ

Rana Hasnain Khan 2024年2月15日
TypeScript のモカ

Mocha と、それを TypeScript にインストールしてテストを実行する方法を紹介します。

TypeScript のモカ

何百万人ものユーザーが使用する商用アプリまたはアプリケーションで作業する場合、アプリケーションがエラーなしで完全に実行されることを確認する必要があります。 この目的のために、JavaScript テスト フレームワークである Mocha を使用します。

Mocha を使用して非同期テストとカバレッジ レポートを実行でき、それを使用して任意のアサーション ライブラリをテストできます。

このチュートリアルでは、Mocha を TypeScript にインストールする方法を紹介します。 ご存知のように、これは JavaScript フレームワークであり、TypeScript で Mocha をセットアップするのは簡単な作業ではなく、時間と労力がかかります。

Mocha と ts-node の変更と更新に関するすべてのタスクを処理する TypeScript フレームワークが利用可能であり、テストの作成についてのみ心配することができます。 ts-mocha ライブラリは、Mocha を簡単に実装して使用するために使用できる便利なライブラリです。

プロジェクトにインストールするには、次のコマンドを実行します。

npm i ts-mocha

次のコマンドを実行して、プロジェクトに mocha および expect タイプをインストールすることも重要です。

npm i @types/mocha @types/expect

テストを追加して実行すると、ほとんどの場合、typescript-require に関連するエラーが発生します。 次のコマンドを使用して ts-node の依存関係をインストールすることで、これを簡単に解決できます。

npm i ts-node

このコマンドは必要なライブラリをインストールし、mocha を使用してテストを簡単に作成して実行できます。 Mocha は主に chai として知られる別のフレームワークで使用されます。

Node.js 用の BDD/TDD アサーション ライブラリです。 このライブラリは、あらゆるテスト フレームワークとペアになっており、テストの作成に役立ちます。

それでは、Mocha テストの例を作成し、アプリケーションでそれらを作成して使用する方法を確認する例を見てみましょう。 まず、新しいプロジェクトをインストールする必要があります。

この目的のために、mocha という名前の新しいディレクトリを作成し、ターミナルで以下のコマンドを実行してプロジェクトを初期化します。

npm init

プロジェクトのオプションを尋ねられ、package.json ファイルが作成されます。 この手順が完了したら、次のコマンドを使用して dotenv で Express をインストールします。

npm i --save express dotenv

Express をインストールした後、プロジェクトに mochachaitypescriptnodemonsupertestts-node、および tsconfig-paths をインストールします。 前述のように、mochachai は一緒にテストを作成するために使用されます。

typescript でテストを作成するため、typescript をインストールします。

プロジェクト ファイルに変更を加えるたびにプロジェクトを更新できるようにするため、nodemon を使用します。 supertest をインストールします。これにより、Mocha テストでエンドポイントをテストできるようになります。

これは、API をテストするのに役立ちます。 ts-node をインストールすると、ノード プロジェクトで TypeScript を使用できるようになります。また、tsconfig-paths が必要になります。これにより、Mocha テストのノード プロジェクト全体で絶対インポートを使用できるようになります。

以下に示すように、以下のコマンドを実行してそれらをインストールできます。

npm i -D mocha chai typescript nodemon supertest ts-node tsconfig-paths

TypeScript は型を知る必要があるため、これらの依存関係の型をインストールします。 次のコマンドを使用して簡単にインストールできます。

npm i -D @types/chai @types/mocha @types/node @types/supertest

以下に示すように、package.json scripts セクションに build および dev コマンドを追加します。

"scripts": {
    "build": "tsc -p .",
    "dev": "NODE_ENV=dev nodemon -r tsconfig-paths/register src/app.ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

また、プロジェクトで TypeScript 構成を初期化する必要があります。 次のコマンドを使用すると、簡単に実行できます。

tsc --init

このコマンドは、TypeScript のすべての構成を含む tsconfig.json という名前の新しいファイルを作成します。 このファイルでは、いくつかの変更を行う必要があります。

まず、出力ディレクトリを変更して、TypeScript のコンパイル時にブラウザーで使用できる一連の JavaScript を出力できるようにする必要があります。それを dist フォルダー内に配置し、その他の変更を次のように行います。 下に示された。

"rootDir": "./src",
"moduleResolution": "node",
"baseUrl": "./src",

次に、以下に示すように、package.json ファイルに test コマンドを設定または追加します。

"test": "NODE_ENV=test mocha --check-leaks -r tsconfig-paths/register -r ts-node/register \"test/**/*.spec.ts\""

テスト用の新しいディレクトリを作成し、index.specs.ts ファイルをテスト ディレクトリに追加します。 以下に示すように、テストディレクトリ内に、ファイル server-runs.specs.ts を含む server の名前で別のディレクトリを作成します。

typescriptでmochaでテストするためのフォルダ構造

両方のファイルにいくつかのサンプル テストを作成してみましょう。 index.specs.ts のテストを以下に示します。

describe('test', function(){
    it("testing", function(){
        console.log('Looks fine')
    });
})

以下に示すように、server-runs.specs.ts にテストを作成しましょう。

describe('server checking', function(){
    it("server is created without any error", function(){
        console.log('Looks fine')
    });
})

テストを実行して、次のコマンドでどのように機能するかを確認しましょう。

npm test

出力:

typescript でチェックするモカ テスト

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn