問題タブ [nodeunit]
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.
node.js - ノード ユニットでテスト スイートの前にセットアップ コードを実行する
自動化されたシステム/統合テストを作成する場合、すべてのテストが「サーバーを起動する」前に最初のステップを実行するのが一般的です。サーバーの起動にはコストがかかる可能性があるため、個々のテストの前ではなく、一度だけ実行することをお勧めします。JUnit には、これを行うための簡単な機能があります。nodeunit に同等の標準パターンはありますか? それとも手で転がす必要がありますか?
javascript - NodeUnit で最初に init を実行 - 別のファイル
現在、nodeunit テストを開発していますが、問題に遭遇しました。
「Unit_tests」という名前のフォルダーがあります
このフォルダーには、 initとtermの 2 つのメソッドを含む "testInitializer.js" ファイルがあります。
これらのメソッドは、他のすべてのテストの最初と最後に一度だけ実行する必要があります。他のテストは、ルート「Unit_tests」の下の別のフォルダーにあります。
このファイルが最初に実行されるようにするにはどうすればよいですか。
現在のところ、ほとんどの場合、そうではありませんが、場合によってはそうではありません。webstorm
それが最初に実行されることを確認する方法はありますか?
よろしくお願いします!
javascript - Express 単体テストでの非同期関数のオーバーライド
今日のほとんどは、アプリの簡易単体テストの作成と格闘してきました。app.js でアプリのセットアップを行う非同期関数があります。大量のファイルを読み取るため、時間がかかります。アプリの実行は問題ではありませんが、単体テストは、テストの実行時にセットアップがまだ完了していないためです。
そこで、非同期関数をスタブ化し、コールバックが実行されるまで単体テスト setUp を完了しない再定義された非同期関数を呼び出すようにしました。
問題は、再定義された関数が実行されるときに、テストによってアプリがセットアップに渡されたとしても、渡されたアプリ インスタンスですべてのセットアップが完了していないことです。sinon.callsArgWith が引数の周りにクロージャーを設定しているように見えるため、関数が実行されると、設定前の状態の引数が含まれます。
また、proxyquire を使用して、テスト実行の間にモジュールの新しいロードを確実に取得しています (noPreserveCache を使用)。
再定義された関数は options 引数で渡され、sinon はそれを探して実行します。これが本来のやり方だと思います。ドキュメントを 20 回読んだのですが、コードを実行する他の方法を見つけることができませんでした。 (シノンの正しい使い方ですか?)
Express アプリ (v4) の構造は次のとおりです。
www:
app.js:
;
async_function.js:
options.js:
test.js:
helpers.js:
私が見逃した明白な/あいまいなものはありますか? または、私が気付いていない簡単な方法はありますか?
高速アプリでいくつかのテストを実行するだけでも、かなりの労力がかかるように思えます。
これについて何か助けていただければ幸いです。私はすべてアイデアがありません。
javascript - Nodeunit テスト イベント ベースの非同期コード
過去数日間、すでにいくつかの質問を投稿しましたが、それは長すぎました (不可解なフィードバックがなかったので推測しています)。これを簡単にまとめてみました。
次のコードは、「setup-complete」イベントを使用して、nodeunit setUp コマンドに通知し、テストを実行します。テスト 1 はパスし、テスト 2 は失敗します。
失敗: テスト (またはそのセットアップ/ティアダウン) を元に戻す: - イベント ベースの非同期コード - test2
私のコードに間違いはありますか?イベントベースのコードをテストするのにnodeunitは悪い選択ですか? 私のアプローチですか?アドバイスをいただければ幸いです。ありがとう
async_setup.js:
テスト/test.js:
javascript - オブジェクトの nodeunit deepEqual テストでエポック フィールドをスキップするにはどうすればよいですか?
を使用して、いくつかの Javascript オブジェクトでテストを実行していますnodeunit
。ある時点で、次のような検証があります。
私が検証しているオブジェクトは、おおよそ次のようになります。
timestamp
動的に作成されたオブジェクト (この場合は ) のフィールドtestObject
が常に異なるため、テストは常に失敗します。deepEqual
その単一のフィールドをスキップするようにメソッドに指示する方法はありますか?