jest - 楽しいJavaScriptテスト。

(Delightful JavaScript Testing.)

Created at: 2013-12-10 08:18:04
Language: TypeScript
License: MIT

npm バージョン Jest は MIT ライセンスの下でリリースされています。 ツイッターでフォローする

GitHub CI ステータス カバレッジステータス

Gitpod すぐにコーディングできる

 

🃏楽しいJavaScriptテスト

👩🏻 💻 開発者準備完了: 包括的な JavaScript テスト ソリューション。ほとんどの JavaScript プロジェクトですぐに使用できます。

🏃🏽 インスタントフィードバック:高速でインタラクティブなウォッチモードは、変更されたファイルに関連するテストファイルのみを実行します。

📸 スナップショットテスト: 大きなオブジェクトのスナップショットをキャプチャして、テストを簡素化し、時間の経過とともにどのように変化するかを分析します。

jestjs.io についてもっと見る

目次

はじめ

糸を使ってJestをインストールします:

yarn add --dev jest

または npm:

npm install --save-dev jest

注: Jest ドキュメントはコマンドを使用しますが、動作します。糸のドキュメントでコマンドを比較することができます 詳細はこちら.

yarn
npm
yarn
npm

2つの数値を加算する架空の関数のテストを書くことから始めましょう。まず、ファイルを作成します。

sum.js

function sum(a, b) {
  return a + b;
}
module.exports = sum;

次に、 という名前のファイルを作成します。これには実際のテストが含まれます。

sum.test.js

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

次のセクションを : に追加します。

package.json

{
  "scripts": {
    "test": "jest"
  }
}

最後に、 orを実行すると、Jestはこのメッセージを出力します:

yarn test
npm test

PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

あなたはJestを使って最初のテストをうまく書きました!

このテストでは、2 つの値がまったく同じであることをテストしてテストしました。Jestがテストできるその他の事柄については、「マッチャーの使用」を参照してください。

expect
toBe

コマンドラインからの実行

JestはCLIから直接実行できます(たとえば、 by or )でグローバルに利用可能な場合は、さまざまな便利なオプションを使用できます。

PATH
yarn global add jest
npm install jest --global

設定ファイルとして使用して、一致するファイルでJestを実行し、実行後にネイティブOS通知を表示する方法は次のとおりです。

my-test
config.json

jest my-test --notify --config=config.json

コマンドラインでの実行についてさらに詳しく知りたい場合は、Jest CLIオプションのページをご覧ください。

jest

追加構成

基本構成ファイルの生成

あなたのプロジェクトに基づいて、Jestはあなたにいくつかの質問をし、各オプションの簡単な説明を含む基本的な設定ファイルを作成します:

jest --init

バベルを使う

Babelを使用するには、以下を使用して必要な依存関係をインストールします。

yarn

yarn add --dev babel-jest @babel/core @babel/preset-env

プロジェクトのルートにファイルを作成して、現在のバージョンのNodeをターゲットにするようにBabelを設定します。

babel.config.js

// babel.config.js
module.exports = {
  presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

Babelの理想的な構成は、プロジェクトによって異なります。詳細については、Babelのドキュメントを参照してください。

あなたのバベルの設定を冗談に認識させる

Jestは、他の何かに設定されていない場合はに設定します。設定でこれを使用して、Jestに必要なコンパイルのみを条件付きで設定することができます。

process.env.NODE_ENV
'test'

// babel.config.js
module.exports = api => {
  const isTest = api.env('test');
  // You can use isTest to determine what presets and plugins to use.

  return {
    // ...
  };
};

注:Jestのインストール時に自動的にインストールされ、プロジェクトにbabel設定が存在する場合はファイルを自動的に変換します。この動作を回避するには、構成オプションを明示的にリセットします。

babel-jest
transform

// jest.config.js
module.exports = {
  transform: {},
};

ウェブパックの使用

Jestは、webpackを使用してアセット、スタイル、コンパイルを管理するプロジェクトで使用できます。webpackは、他のツールよりもいくつかのユニークな課題を提供しています。開始するには、Webpackガイドを参照してください。

Vite の使用

Jestは、フロントエンドツールを提供するためにネイティブESMを介してソースコードを提供するためにviteを使用するプロジェクトで使用できますが、viteは意見の定型ツールであり、すぐに使えるワークフローを提供します。jestは、viteのプラグインシステムがどのように機能するかのためにviteによって完全にはサポートされていませんが、 を使用したファーストクラスのjest統合のためのいくつかの実用的な例があります これは完全にはサポートされていないので、 vite-jestの制限を読むこともできます。開始するには、vite ガイドを参照してください。

vite-jest

パーセルの使用

Jestは、パーセルバンドラーを使用してWebpackに似たアセット、スタイル、コンパイルを管理するプロジェクトで使用できます。パーセルにはゼロ構成が必要です。開始するには、公式ドキュメントを参照してください。

タイプスクリプトの使用

JestはBabel経由でTypeScriptをサポートしています。まず、上記のBabelの使用に関する指示に従っていることを確認してください。次に、ビアをインストールします。

@babel/preset-typescript
yarn

yarn add --dev @babel/preset-typescript

次に、 のプリセットのリストに追加します。

@babel/preset-typescript
babel.config.js

// babel.config.js
module.exports = {
  presets: [
    ['@babel/preset-env', {targets: {node: 'current'}}],
+    '@babel/preset-typescript',
  ],
};

ただし、BabelでTypeScriptを使用することにはいくつかの注意点があります。BabelでのTypeScriptのサポートは純粋にトランスパイルであるため、Jestはテストの実行中にテストの型チェックを行いません。それを望むなら、代わりにts-jestを使うか、TypeScriptコンパイラtscを別々に(またはビルドプロセスの一部として)実行することができます。

ドキュメンテーション

Jestの使用についての詳細は、公式サイトをご覧ください!

バッジ

Jestを使用している世界を表示する

jestでテスト済み jest テスト済み 冗談

[![tested with jest](https://img.shields.io/badge/tested_with-jest-99424f.svg?logo=jest)](https://github.com/facebook/jest)
[![jest tested](https://img.shields.io/badge/Jest-tested-eee.svg?logo=jest&labelColor=99424f)](https://github.com/facebook/jest)
[![jest](https://jestjs.io/img/jest-badge.svg)](https://github.com/facebook/jest)

貢献

Jestの開発はGitHubで公開されており、バグ修正と改善に貢献してくれたコミュニティに感謝しています。Jestの改善に参加する方法については、以下をお読みください。

行動規範

Facebookは、プロジェクト参加者が遵守することを期待している行動規範を採用しています。どのような行動が容認され、どのような行動が容認されないかを理解できるように、全文をお読みください。

寄稿ガイド

私たちの開発プロセス、バグ修正と改善を提案する方法、そしてJestへの変更をビルドしてテストする方法について学ぶために、私たちの貢献ガイドを読んでください。

良い最初の問題

あなたが足を濡らし、私たちの貢献プロセスに慣れるのを助けるために、私たちは比較的限られた範囲を持つバグを含む良い最初の問題のリストを持っています。これは始めるのに最適な場所です。

クレジット

このプロジェクトは、貢献してくれたすべての人々のおかげです。

支持 者

すべての支援者に感謝します!🙏

スポンサー

スポンサーになることでこのプロジェクトをサポートします。ロゴがここに表示され、ウェブサイトへのリンクが表示されます。

ライセンス

JestはMITのライセンスを受けています