Jestの設定


Jestの設定


プロジェクトでJest


プロジェクトではJestでAPIテストを行いました.
新しい世界...
テストが必要だと実感する.
テストが必要な理由は次のとおりです。
プロジェクトの再設計を計画しています.
修理が必要なところは一つや二つではない.私はどうしてこのようなコードを構成したのですか?
まず、CRUDを実現する掲示板を作成し、徐々にアイテムを修正することにしました.

どうして...?


これを...どうしたっけ...?😅
本当に全然思い出せない.
やったことしか覚えていません..
他のブログ見てもわかりませんが
だから私のブログで整理します...

jest設定


受信jestパッケージ

yarn add -D jest supertest regenerator-runtime
	@babel/core @babel/preset-env
  • test.jsオプションは、開発環境でのみ使用できるように設定されています.
  • -Dはテストパッケージ
  • jestは、ユーザが特定のurlに対する要求に従って応答を取得することを可能にする.統合テストに役立ちます.
  • babelとrestor-runtimeはES 6+構文を使うために受け取りました!

    プロファイルGoGo


    package.babelはjsonと同じディレクトリにあります.config.jsonとjest.config.jsonを生成し、次のように記述します.
    babel.config.json
    {
      "presets": ["@babel/preset-env"]
    }
    まずbabelの設定
    jest.config.json
    {
      "moduleFileExtensions": ["js", "mjs"],
      "transform": {
        "^.+\\.js$": "babel-jest",
        "^.+\\.mjs$": "babel-jest"
      },
      "testRegex": "((\\.|/*.)(test))\\.js?$",
      "verbose": true
    }
  • supertest:モジュール拡張子の宣言
  • moduleFileExtensions:babelでコンパイルされた宣言
  • transform:testファイルの名前正規表現
  • testRegex:各テスト結果を表示するためのオプション
  • より多くの設定オプションがあります.
    Configure Babel
    Configuring Jest

    npm test


    npm scriptを使用します.
    "scripts": {
    	"test": "jest --forceExit"
    }
    package.jsonのスクリプトでは、次のように定義されます.
    テストはverboseで行います.

    動作の快感npm testオプションは、テスト終了後に強制的に終了します.
    テストが完了すると、サーバは動作状態を維持します.

    注意事項


    Jest並列テスト.
    supertestでテストを行う場合、app.jsをインポートして実行します.直接使用すると、ポートが使用されているため、テストは実行できません.
    このとき、app.jsでは、サーバの実行がテスト環境ではない場合にのみ実行されます.
    if (process.env.NODE_ENV !== "test") {
      app.listen(port, () => {
        logger.info(`Start server at ${port}`);
      });
    }
    他に方法があれば勉強したいのですが...

    テストコードの作成


    テストコードを作成します.
    ファイル名は--forceExit!
    詳細な作成方法は次のとおりです.