問題タブ [jestjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4473 参照

node.js - jest でノード アプリをテストするときにコンソール ログ出力が表示されないのはなぜですか

私は jest でテストするのが初めてで、テストしたいモジュールからのコンソール出力を見ることができないようです。

私のモジュール.js:

私のモジュール-test.js:

jest が「my-module.js」の console.log 出力を飲み込むのはなぜですか?

0 投票する
1 に答える
290 参照

jestjs - Jest: 未定義のメソッド 'split' を呼び出せません

次の jest テスト (testfile-test.js) があるとします。

また、package.json に次の jest 構成があります。

ただし、このテストを実行すると、次の結果が得られます。

「var testfile = require('../testfile');」を削除すると テストから、それは正常に動作します。send/mime モジュールがモック化されないのはなぜですか?

0 投票する
1 に答える
5380 参照

javascript - Jestでテストするときにモックをリセットするより速い方法はありますか?

React/Flux コードを書いて、Jest を使ってテストしています。私のテストが完了するのにすでに長い時間がかかっていることを除いて、これまでのところそれは素晴らしいことです.

犯人は、各テストの間にモックをリセットしているようです。

私の一般的なセットアップは次のようになります。

私の例では、2 つのテストの間にストアをリロードしないと、 への呼び出し回数に対して間違った結果が得られgetDooblesます。これは、同じオブジェクトであるため意味があります。

しかし、モックのリロードには少し時間がかかり、多くのテストを行うと遅くなります。

オブジェクトのクローンを作成するか、リセット関数を呼び出したいと思います。個々の関数のリセット関数 ( mockClear()) はありますが、オブジェクト全体のグローバル リセットはないようです。また、クローンは React コンポーネントがアクセスしているオブジェクトと同じオブジェクトではないため、オブジェクトのクローンを作成できません。そのため、どの呼び出しも登録されません。

これは他の問題を引き起こします。依存関係チェーンのすべてをリロードする必要があるようです。再要求するだけの場合、アクセスできるオブジェクトは、アクセスできるWidgetStoreオブジェクトと同じではないようですWidget

リロードWidgetStoreしただけで、React の 2 つのコピーがロードさWidgetれていることが原因と思われるエラーが頻繁に発生します。そのため、毎回 React をリロードする必要があります。

それで、これを行うより良い方法はありますか?

0 投票する
1 に答える
2131 参照

jasmine - JestでRefluxアクションをテストする方法

アプリケーションで Reflux アクションが正しくトリガーされていることをテストするのに苦労しています。実際、Jest ではまったく動作していないようです。私はこのサンプルテストを持っています:

どの出力:

ジャスミンの非同期関数を使用しても、機能していないようです

私に与える...

誰かがこれを機能させましたか?

0 投票する
3 に答える
14319 参照

javascript - Jest で自分のファイルの 1 つを手動でモックするにはどうすればよいですか?

React コンポーネント内でデフォルトの動作を提供できるように、Jest で (作成した) オブジェクトをモックしようとしています (したがって、実際の実装は使用されません)。

これは私の反応コンポーネントChatAppです(非常に簡単です)

そのため、翻訳を行うカスタム I18n 依存関係があります (I18n は、node-polyglot のラッパーとして私が作成したものです)。

したがって、H1 に正しい単語が含まれているかどうかを確認するための基本的なテストを行いたいのですが、実際のオブジェクトを使用したくないため、I18n オブジェクトに jest.dontMock() を設定したくありません。 ChatApp テストで。

jest Web サイトの基本的な手順に従って、mocksフォルダーを作成し、i18n 用のモック ファイルを作成しました。これにより、元のオブジェクトからモックが生成され、t メソッドがオーバーライドされ、戻り文字列を設定できるメソッドが追加されます。 t。

これがモックオブジェクトです

私のChatAppテストでは、次のように、それぞれの前にモックが必要です。

テスト内で i18n オブジェクトを console.log すると、正しいモック オブジェクトが取得され、__setReturnString もトリガーされます (そのメッセージで console.log を行っているかのように、ログが表示されます)。

ただし、実際の React コンポーネント内の i18n オブジェクトを console.log すると、Jest モックが取得されますが、Jest モックは取得されないため、t メソッドは何もしない空のメソッドであり、テストが失敗することを意味します。 .

私が間違っていることはありますか?

どうもありがとう

0 投票する
6 に答える
23011 参照

javascript - Jest での XMLHttpRequest テスト

AJAX メソッド (バニラ XHR) をテストしたいのですが、Jestフレームワークでそれを行う方法が見つかりません。mock-ajax.jsジャスミンを見つけました。問題は、インストール方法が見つからないことです。

Jestで Ajax 関数を単体テストするためのより良い方法はありますか?