Jestを使用して、テストケースが失敗した場合にのみブレークポイントをトリガーする方法は?

lowtex

これに似たテストケースを考えると:

test(“test”, () => {
    [1, 2, ..., 1000000].map(value => {
        expect(() => foo(value)).toThrow();
    });
})

expectステートメントが失敗した場合にのみトリガーされるブレークポイント(3行目など)を設定する簡単な方法はありますか?

言い換えると、大きな配列の途中の値の1つが原因でテストが失敗し、ほとんどの値が例外条件をトリガーしない場合、ブレークポイントを設定する方法があります。テストは合格ですが、テストが失敗した場合は中断しますか?

これにより、その値に対してテストが失敗する理由を簡単に把握できます。

私はWebStormを使用しているので、Chrome /ノード、コード、またはWebStormでそれを行う方法についての回答に満足しています。

ブライアン・アダムス

コンパイル時の値がわかっている場合は、値test.eachごとに一意のテストを作成して、失敗している値を明確に確認できます。

const tests = [[6], [7], [8]];

test.each(tests)(
  '%i should be even',
  v => {
    expect(v % 2).toBe(0);
  }
)

...これは、2つのテストが合格(6と8)し、7で失敗して説明メッセージが表示されることを報告します。

● 7 should be even

expect(received).toBe(expected) // Object.is equality

Expected: 0
Received: 1

  4 |   '%i should be even',
  5 |   v => {
> 6 |     expect(v % 2).toBe(0);
    |                   ^
  7 |   }
  8 | )

  at toBe (src/code.test.js:6:19)

テストデータが実行時まで利用できず、アサーションが単純なものである場合は、次のexpect行に条件付きブレークポイントを設定するだけです

const generateData = count => {
  const data = [];
  for (let i = 0; i < count; i++) {
    data.push(Math.floor(Math.random() * 10) + 1);
  }
  return data;
}

test('all values are even', () => {
  generateData(1000).map(v => {
    expect(v % 2).toBe(0);  // <= set breakpoint for v % 2 !== 0
  });
})

テストデータが実行時まで利用できず、条件付きブレークポイントを設定するのが難しい場合は、expectをaでラップしtry / catch、ブレークポイントをcatch:に配置できます

const generateData = count => {
  const data = [];
  for (let i = 0; i < count; i++) {
    data.push(Math.floor(Math.random() * 10) + 1);
  }
  return data;
}

test('all values are even', () => {
  generateData(1000).map(v => {
    try {
      expect(v % 2).toBe(0);
    }
    catch (err) {
      throw err;  // <= set your breakpoint here
    }
  });
})

expectステートメントErrorは、アサーションが失敗し場合にをスローすることで機能するため、このアプローチは単にキャッチして再スローしますErrorが、失敗した場合にトリガーされるブレークポイントを設定する場所を提供しますexpect

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ステージAがjenkinsパイプラインで失敗した場合にのみステージBをトリガーする方法

分類Dev

テストが失敗した場合にのみスクリーンショットを作成する

分類Dev

JavaScript / Jest:テストが失敗した場合にのみテストケースのログを表示するにはどうすればよいですか?

分類Dev

Akkaストリーム:失敗した場合にのみバックオフ戦略を使用する方法は?

分類Dev

DockerでJestユニットテストが失敗した場合、テストレポートを取得するにはどうすればよいですか?

分類Dev

SQLは、トリガーが失敗した場合にトリガーをアクティブ化したステートメントを認識しています

分類Dev

FontAwesomeIconをインポートするコンポーネントのテストに失敗したJest

分類Dev

dartのみのパッケージ(riverpod)を使用している場合に変更をリッスンする方法、またはコンテキストがない場合にプロバイダーを使用する方法は?

分類Dev

Rails 5.1.4テストは、テストが失敗した場合にのみNameErrorをスローします

分類Dev

ネストされたforループを使用する場合、ネストされたループ内のアイテムがifステートメントをトリガーしない場合にアクションを完了する方法

分類Dev

内部クラスが外部クラステンプレートパラメータを使用しているが、 `ostream`を使用している場合にのみコンパイルが失敗する

分類Dev

htaccess他のすべてのルールが失敗した場合にリダイレクトする方法は?

分類Dev

CORSリクエストは、別のドメインから同じリソースをリクエストした場合にのみ失敗します

分類Dev

SpringBootTest-コンテキストの読み込みが失敗した場合にアサートする方法

分類Dev

テストケースがSOAPUIで失敗した場合でも、続行する前に特定のステップを呼び出してクリーンアップするにはどうすればよいですか?

分類Dev

<include ... />ステートメントが使用されている場合、Androidリポジトリツールはdefault.xmlの初期化に失敗します

分類Dev

React Native:iPhone 4G / LTEパーソナルホットスポットから共有されたネットワークを使用している場合にのみ「ネットワークリクエストが失敗しました」

分類Dev

Jestでのテスト中に、webpackで画像をインポートすると、酵素のレンダリングが失敗します

分類Dev

クライアント側の検証が失敗した場合にASP.NETMVCレジスタフォームでajaxスピナーを停止する方法

分類Dev

jdbcTemplateを使用して、一部のhttpリクエストが成功し、一部のhttpリクエストが失敗した場合にマイクロサービスをロールバックする方法

分類Dev

waitForExpectations()を使用してタイムアウト時に失敗したテストをトリガーする方法は?

分類Dev

検証が失敗した場合にajaxとphpを使用してモーダル形式でエラーを表示し、成功した場合は他のページにリダイレクトする方法

分類Dev

jspmを使用してGithupリポジトリをインストールする場合、取得するzipリリースを指定する方法、または代わりにリポジトリのクローンを作成する方法

分類Dev

マテリアライズドビューを更新するためにトリガーをドロップしない限り、パンダで.csvto_sqlをインポートするためのPythonスクリプトが失敗します

分類Dev

JUnitテストケースはEclipseで失敗しましたが、mvnクリーンインストールは成功を示しています

分類Dev

すべてのテストケースの実行後、またはangularjsでseleniumサーバーを使用して分度器でテストケースが失敗した後にブラウザーを閉じる方法

分類Dev

テストケースが失敗した場合(TestNGを使用)に特定のメソッドを実行するにはどうすればよいですか?

分類Dev

Cucableプラグインを使用してキュウリスクリプトを並行して実行した場合のテストケース結果を1つだけ示すエクステントレポート

分類Dev

インポート/エクスポートのデフォルト構文を使用してリポジトリからファイルをインポートすると、Jestが失敗します

Related 関連記事

  1. 1

    ステージAがjenkinsパイプラインで失敗した場合にのみステージBをトリガーする方法

  2. 2

    テストが失敗した場合にのみスクリーンショットを作成する

  3. 3

    JavaScript / Jest:テストが失敗した場合にのみテストケースのログを表示するにはどうすればよいですか?

  4. 4

    Akkaストリーム:失敗した場合にのみバックオフ戦略を使用する方法は?

  5. 5

    DockerでJestユニットテストが失敗した場合、テストレポートを取得するにはどうすればよいですか?

  6. 6

    SQLは、トリガーが失敗した場合にトリガーをアクティブ化したステートメントを認識しています

  7. 7

    FontAwesomeIconをインポートするコンポーネントのテストに失敗したJest

  8. 8

    dartのみのパッケージ(riverpod)を使用している場合に変更をリッスンする方法、またはコンテキストがない場合にプロバイダーを使用する方法は?

  9. 9

    Rails 5.1.4テストは、テストが失敗した場合にのみNameErrorをスローします

  10. 10

    ネストされたforループを使用する場合、ネストされたループ内のアイテムがifステートメントをトリガーしない場合にアクションを完了する方法

  11. 11

    内部クラスが外部クラステンプレートパラメータを使用しているが、 `ostream`を使用している場合にのみコンパイルが失敗する

  12. 12

    htaccess他のすべてのルールが失敗した場合にリダイレクトする方法は?

  13. 13

    CORSリクエストは、別のドメインから同じリソースをリクエストした場合にのみ失敗します

  14. 14

    SpringBootTest-コンテキストの読み込みが失敗した場合にアサートする方法

  15. 15

    テストケースがSOAPUIで失敗した場合でも、続行する前に特定のステップを呼び出してクリーンアップするにはどうすればよいですか?

  16. 16

    <include ... />ステートメントが使用されている場合、Androidリポジトリツールはdefault.xmlの初期化に失敗します

  17. 17

    React Native:iPhone 4G / LTEパーソナルホットスポットから共有されたネットワークを使用している場合にのみ「ネットワークリクエストが失敗しました」

  18. 18

    Jestでのテスト中に、webpackで画像をインポートすると、酵素のレンダリングが失敗します

  19. 19

    クライアント側の検証が失敗した場合にASP.NETMVCレジスタフォームでajaxスピナーを停止する方法

  20. 20

    jdbcTemplateを使用して、一部のhttpリクエストが成功し、一部のhttpリクエストが失敗した場合にマイクロサービスをロールバックする方法

  21. 21

    waitForExpectations()を使用してタイムアウト時に失敗したテストをトリガーする方法は?

  22. 22

    検証が失敗した場合にajaxとphpを使用してモーダル形式でエラーを表示し、成功した場合は他のページにリダイレクトする方法

  23. 23

    jspmを使用してGithupリポジトリをインストールする場合、取得するzipリリースを指定する方法、または代わりにリポジトリのクローンを作成する方法

  24. 24

    マテリアライズドビューを更新するためにトリガーをドロップしない限り、パンダで.csvto_sqlをインポートするためのPythonスクリプトが失敗します

  25. 25

    JUnitテストケースはEclipseで失敗しましたが、mvnクリーンインストールは成功を示しています

  26. 26

    すべてのテストケースの実行後、またはangularjsでseleniumサーバーを使用して分度器でテストケースが失敗した後にブラウザーを閉じる方法

  27. 27

    テストケースが失敗した場合(TestNGを使用)に特定のメソッドを実行するにはどうすればよいですか?

  28. 28

    Cucableプラグインを使用してキュウリスクリプトを並行して実行した場合のテストケース結果を1つだけ示すエクステントレポート

  29. 29

    インポート/エクスポートのデフォルト構文を使用してリポジトリからファイルをインポートすると、Jestが失敗します

ホットタグ

アーカイブ