タグ付けされた質問 「jestjs」

Jestは、Jasmineに基づいてFacebookによって作成されたJavaScriptユニットテストフレームワークであり、自動化されたモックの作成とjsdom環境を提供します。Reactコンポーネントのテストによく使用されます。

15
Jestを使用して単一のファイルをテストするにはどうすればよいですか?
Jestを使用して複数のファイルをテストできますが、1つのファイルをテストする方法がわかりません。 私が持っています: 走る npm install jest-cli --save-dev 更新package.json: `{..." scripts ":{" test ":" jest "} ...} いくつかのテストを書いた。 実行npm testは期待どおりに機能します(現在、14のテストを実行しています)。 単一のファイルをテストするにはどうすればよいapp/foo/__tests__/bar.spec.jsですか。 npm test app/foo/__tests__/bar.spec.js(プロジェクトルートから)実行しようとしましたが、次のエラーが発生します。 npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json' ありがとう
360 node.js  jestjs 

13
Jestを使用して単一のテストを実行するにはどうすればよいですか?
fix-order-test.jsファイル内に「ネストされた子で動作する」テストがあります。 以下を実行すると、ファイル内のすべてのテストが実行されます。 jest fix-order-test 単一のテストのみを実行するにはどうすればよいですか?以下は、指定された正規表現のファイルを検索するため機能しません。 jest 'works with nested children'
355 jestjs 

7
Jestを使用してES6モジュールのインポートをモックするにはどうすればよいですか?
これは不可能だと思い始めていますが、とにかく聞きたいです。 ES6モジュールの1つが特定の方法で別のES6モジュールを呼び出すことをテストしたいと思います。ジャスミンを使えば、これはとても簡単です- アプリコード: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } そしてテストコード: //myModule-test.js import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { it('calls the dependency with double the input', () => { spyOn(dependency, 'doSomething'); myModule(2); expect(dependency.doSomething).toHaveBeenCalledWith(4); }); }); Jestと同等のものは何ですか?これはやりたいことのように簡単なことだと思いますが、それを理解しようとして髪を切り裂いてきました。 一番近いのは、importsをrequiresに置き換え、それらをテスト/関数内に移動することです。どちらも私がやりたいことではありません。 …

6
jestの「it」と「test」の違いは何ですか?
テストグループに2つのテストがあります。1つはそれを使用し、もう1つはテストを使用します。それらの違いは何ですか? describe('updateAll', () => { it('no force', () => { return updateAll(TableName, ["fileName"], {compandId: "test"}) .then(updatedItems => { let undefinedCount = 0; for (let item of updatedItems) { undefinedCount += item === undefined ? 1 : 0; } // console.log("result", result); expect(undefinedCount).toBe(updatedItems.length); }) }); test('force update', () => { return …

9
JestでESLintを使用する方法
JestテストフレームワークでESLintリンターを使用しようとしています。 Jestテストはのようないくつかのグローバルで実行されjestます。ただし__tests__、注意が必要なのはディレクトリ構造です。Jestでは、テストはフォルダー内のソースコードに埋め込まれているため、ディレクトリ構造は次のようになります。 src foo foo.js __tests__ fooTest.js bar bar.js __tests__ barTest.js 通常、私はすべてのテストを単一のディレクトリの下に置いて、.eslintrcそこにファイルを追加してグローバルを追加することができます...しかし.eslintrc、すべての単一の__test__ディレクトリにファイルを追加したくありません。 今のところ、テストグローバルをグローバル.eslintrcファイルに追加しただけですが、それによりjest、非テストコードで参照できるようになったため、「正しい」ソリューションとは思えません。 eslintにディレクトリ名などのパターンに基づくルールを適用させる方法はありますか?

14
jest.setTimeoutで指定された5000msのタイムアウト時間内に非同期コールバックが呼び出されませんでした
私は操り人形師と冗談を使っていくつかのフロントエンドテストを実行しています。 私のテストは次のようになります: describe("Profile Tab Exists and Clickable: /settings/user", () => { test(`Assert that you can click the profile tab`, async () => { await page.waitForSelector(PROFILE.TAB); await page.click(PROFILE.TAB); }, 30000); }); テストを実行すると、すべてが期待どおりに動作することがあります。その他の場合、エラーが発生します。 Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout. at node_modules/jest-jasmine2/build/queue_runner.js:68:21 at Timeout.callback [as …

12
Jestでスローされた例外のタイプをテストする方法
関数でスローされた例外のタイプをテストする必要があるコードを使用しています(TypeError、ReferenceErrorなど)。 現在のテストフレームワークはAVAであり、次のt.throwsように2番目の引数メソッドとしてテストできます。 it('should throw Error with message \'UNKNOWN ERROR\' when no params were passed', (t) => { const error = t.throws(() => { throwError(); }, TypeError); t.is(error.message, 'UNKNOWN ERROR'); }); 私はテストをJestに書き直しましたが、簡単に行う方法が見つかりませんでした。それも可能ですか?

11
Jest SecurityError:localStorageは不透明なオリジンには使用できません
コマンドを使用してプロジェクトを実行すると、npm run test以下のエラーが発生します。これは何が原因ですか? FAIL ● Test suite failed to run SecurityError: localStorage is not available for opaque origins at Window.get localStorage [as localStorage] (node_modules/jsdom/lib/jsdom/browser/Window.js:257:15) at Array.forEach (<anonymous>)


5
Jestテストを順次実行する方法は?
を介してJestテストを実行していnpm testます。Jestはデフォルトで並行してテストを実行します。テストを順番に実行する方法はありますか? 現在の作業ディレクトリの変更に依存するサードパーティのコードを呼び出すテストがいくつかあります。
140 jestjs 

8
Jestのコードカバレッジ
Jasmineの上に構築されたJavascript Jestテストフレームワークでコードカバレッジを取得する方法はありますか? 内部フレームワークは、取得したコードカバレッジを出力しません。私はまた、イスタンブール、毛布、JSCoverを使ってみましたが、どれも機能しません。
131 javascript  jestjs 

9
Jestでprocess.envをテストします
私は次のような環境変数に依存するアプリを持っています: const APP_PORT = process.env.APP_PORT || 8080; そして私はそれを例えばテストしたいと思います: APP_PORTは、ノードの環境変数で設定できます。 または、expressアプリがで設定されたポートで実行されていることprocess.env.APP_PORT Jestでこれを達成するにはどうすればよいですか?process.env各テストの前にこれらの変数を設定できますか、それとも何らかの方法でモックする必要がありますか?

14
Jestでモック日付を設定するにはどうすればよいですか?
Moment.jsを使用して、Reactコンポーネントのヘルパーファイルでほとんどの日付ロジックを実行していますが、Jest a laで日付をモックする方法を理解できていませんsinon.useFakeTimers()。 JestのドキュメントではsetTimeout、setIntervalなどのタイマー関数についてのみ説明していますが、日付を設定して、日付関数が意図したとおりに機能することを確認することはできません。 これが私のJSファイルの一部です: var moment = require('moment'); var DateHelper = { DATE_FORMAT: 'MMMM D', API_DATE_FORMAT: 'YYYY-MM-DD', formatDate: function(date) { return date.format(this.DATE_FORMAT); }, isDateToday: function(date) { return this.formatDate(date) === this.formatDate(moment()); } }; module.exports = DateHelper; そして、これが私がJestを使ってセットアップしたものです: jest.dontMock('../../../dashboard/calendar/date-helper') .dontMock('moment'); describe('DateHelper', function() { var DateHelper = require('../../../dashboard/calendar/date-helper'), moment = require('moment'), DATE_FORMAT …
111 momentjs  jestjs 

7
モジュールがモックされていないときに、インポートされた名前付き関数をJestでモックする方法
Jestでテストしようとしている次のモジュールがあります。 // myModule.js export function otherFn() { console.log('do something'); } export function testFn() { otherFn(); // do other things } 上に示したように、いくつかの名前付き関数をエクスポートし、重要なことにをtestFn使用しotherFnます。 Jestで、の単体テストを作成しているときに、の単体テストにエラーが影響しないようにするためtestFn、otherFn関数をモックしたいと思います。私の問題は、それを行うための最良の方法がわからないということです。otherFntestFn // myModule.test.js jest.unmock('myModule'); import { testFn, otherFn } from 'myModule'; describe('test category', () => { it('tests something about testFn', () => { // I want to mock "otherFn" …

4
Jestキャッシュをクリアする方法は?
Jestがパッケージの古いバージョンを取得しているため、を使用しない限り、テストは失敗します--no-cache。からパッケージフォルダを削除することもできnode_modules、Jestはテストを実行します(ほぼすべて合格)。 では、どうすればJestキャッシュをクリアできますか?
106 jestjs 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.