問題タブ [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 投票する
0 に答える
1444 参照

javascript - jest.setMock() での TypeError

jest のモックを明示的に設定すると、なぜ型エラーが発生するのか疑問に思っています。

私はこれをします:

そして私はこれを取得します。

mocks/LoginStatus.jsx は単純に次のとおりです。

Jest のドキュメントは次のとおりです: https://facebook.github.io/jest/docs/api.html#jest-setmock-modulename-moduleexports

0 投票する
2 に答える
5107 参照

javascript - jsdom と Jest の使用

私は Jest を使って、Angular アプリケーションの単体テストを行っています。angularバインディングをテストするために、jsdomを使用しようとしています(注:IOではなくノードを使用しているため、v3.1.2を使用しています)。HTML を使用してスクリプトをロードする必要がある場合、スクリプトがロードされる前にテストが完了しているようです。

jsdom の例を使用して、テスト ケースを単純化しました。

このテストを実行すると、テストは成功しますが、"Completed" というログ メッセージは出力されません。expect(false).toBeTruthy() のように、expect を明らかに失敗するはずのものに置き換えることもできますが、テストは引き続き "合格"。jquery の注入を削除すると、すべてが期待どおりに機能します。

テストを終了する前に、スクリプトがロードされていることを確認するにはどうすればよいですか? より一般的に言えば、Jest で明示的に jsdom を使用するのは少し間違っているように感じます。より良い方法はありますか?

0 投票する
2 に答える
2617 参照

javascript - Jestは一般的なjsモジュールを自動モックしていません

Jest を使用して Flux および React アプリケーションをテストすることに頭を悩ませようとしています。

出発点としてScotch.io チュートリアルを使用し始め、完全なテスト スイートを作成して、最初の実際の反応およびフラックス アプリを構築する方法についての知識を得る予定です。

github で私のコードを見つけて、私がどこにいるのかを確認できます。

実行されないテストはFluxProduct-test.jsx です

100 行目に「TypeError: 未定義のプロパティ 'calls' を読み取れません」というメッセージが表示されます。

FluxActions をログアウトすると、自動モックされていないように見えます。これが、モックが定義されておらず、calls プロパティにアクセスするとエラーがスローされる理由です。

fyi: Jest には Node 0.10 が必要ですが、0.12 では動作しません。

役立つ参照ファイル:

FluxProduct.jsx

FluxCartActions.js

ここに私のpackage.jsonファイルがあります:

npm testアプリディレクトリで実行してテストを実行します。

0 投票する
12 に答える
34095 参照

reactjs - webpackでjestを使用するには?

React コンポーネントの開発にwebpackを使用しています。以下は、その単純なバージョンです。

ここで、 jestを使用してこのコンポーネントをテストしたいと思います。ここに私の関連するビットがありますpackage.json:

を実行するnpm testと、次のエラーが表示されます。

SyntaxError: /Users/mishamoroshko/react-component/src/tests/MyComponent.js: /Users/mishamoroshko/react-component/src/MyComponent.js: /Users/mishamoroshko/react-component/src/MyComponent.less: Unexpectedトークン ILLEGAL

require('./MyComponent.less')jest がテストを実行する前に、webpack を処理する必要があるようです。

jest-webpack のようなものを使用する必要があるのだろうか。はいの場合、複数scriptPreprocessorの を指定する方法はありますか? (私はすでに使用していることに注意してくださいbabel-jest

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

javascript - jasmine-pit でテストしようとすると Jest がタイムアウトする

Jest を使用して角度のある UI に対して小さなテストを実行しようとしていますが、5 秒後にタイムアウトになります。これが私のコードです:

私はピットを使用しているので、Angular がビューを更新できるように 1 秒の遅延を設定できますが、setTimeout の匿名関数が呼び出されないようです。約束が果たされず、テストがタイムアウトします。Jest は Jasmine 1.3.0 を使用しているため、runs() と waitsFor() も使用してみましたが、同じ結果が得られました。

0 投票する
2 に答える
762 参照

node.js - require() を使用すると、IO.js 1.4.3 で Jest (JS) セグメンテーション違反 11 が発生する

IO.js 1.4.3 と Jest を使用してテスト スイートを実行しています。Promises などの ES6 機能を使用しているため、V8 の新しいバージョンが必要です。

最も簡単なテストを試してみると:

それは機能します(ありがたいことに)。require()ただし、 (自分のコードをテストするために実行する必要がある) への呼び出しを含めると、次のようになります。

これは、インクルードするモジュールや、最初に呼び出すかどうかに関係なく発生しますjest.dontMock()

これは実際にはエラーメッセージとしての意味をあまり教えてくれませんが、require実際に問題があるようです。1.0 より前の node.js に戻す以外に、これに対する解決策はありますか?

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

reactjs - コンポーネントを再レンダリングしないテストユーティリティを使用してreactjsコンポーネントでsetStateを呼び出す

私は冗談ベースのテストで次のコードを持っています:

以前のテストでは、コンポーネントの初期状態をテストしました。状態の変更後に setState を呼び出して、コンポーネントをチェックしたいと思います。ここで記録している videoClass は同じままです。私は0.12に反応しています。そして最新のjest 0.4.0。

状態を設定した後に何が起こるかをテストする方法についてのアイデアはありますか?