問題タブ [chai]
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.
javascript - モカ/チャイのexpect.to.throwがスローされたエラーをキャッチしない
expect.to.throw
node.js アプリのテストでChai を動作させるのに問題があります。テストはスローされたエラーで失敗し続けますが、テスト ケースを try と catch でラップし、キャッチされたエラーをアサートすると、動作します。
私が思うように機能しexpect.to.throw
ませんか?
失敗:
unit-testing - jQuery-Chai を使用した要素のテスト
jQuery を使用する関数がいくつかあります。そして、Mocha+Chai で jQuery-Chai を使用してそれらをテストする適切な方法を理解するのに苦労しています。
jQuery-Chai プラグインにアサーションのリストが表示されます。しかし、これらのアサーションを実行するための DOM データをどこで取得するのかわかりません。
理想的には、html の行を挿入したいと考えています。その上で関数を実行します。そして、jQuery-Chai アサーションを使用して検証します。
これらの機能をテストするためにフィクスチャをどこに含めるかを明確にするのを手伝ってくれる人はいますか?
前もって感謝します。
使用: モカ + チャイの Testem。
javascript - nodejs ハーモニー ジェネレーター メソッドのテスト
次の JS 関数があるとします。
node.js で ES6 ジェネレーターを使用して、次のような操作が行われるのを待つことができます。
mocha と sinon (および mocha-sinon) を使用して、このようなことを行ったことをテストするには:
しかし、私が得たのは、保存のコールバックが呼び出される前に addToDB() が終了するため、コールバックが呼び出されないということだけです。
それをどのようにテストしますか?
javascript - chai-as-promised を使用して解決された promise オブジェクトで hasOwnProperty() をテストする
次のテストを実行しようとしています。
User
返されたオブジェクトにプロパティが含まれているかどうかをテストするための正しい構文を見つけようとしてい'sessionId'
ます。誰もそれを行う方法を知っていますか?
testing - Yeoman webapp ジェネレーター - ブラウザーで mocha テストを実行する方法
mocha/chai で記述された JS テストがいくつかあり、webapp ジェネレーターを使用してスキャフォールディングされたプロジェクトでそれらを実行したいと考えています。
Yeoman の構造の "test" フォルダー内にテストを配置しましたが、テストは正常に実行されています。ただし、問題は、grunt test
コマンドがブラウザーではなくコンソールにテスト結果を表示するだけであることです。
コマンドを実行して、ブラウザにテストを表示する方法を探しています。どうやってやるの?
助けてくれてありがとう!
javascript - $promise 内で $broadcast を使用して、コントローラ $scope でイベントがいつ発生したかを mocha はどのように知ることができますか?
私のニーズに合った他の質問/回答が見つからなかったので、ここにあります:
AngularJS (1.2.14) コントローラーには、イベント ('fetchData') が発生したときに ajax 呼び出しを実行してデータをフェッチするイベント リスナーがあります。フェッチが成功すると、イベント ('fetchSuccess' と呼ばれる) がブロードキャストされ、ディレクティブがリッスンします (ただし、その部分は関係ありません)。
したがって、私のテストでは、次のようなことをしたいと考えています (「this.scope」は、テスト スイートのコントローラーの新しい $scope オブジェクトであると仮定します)。
しかし、アサーションで $broadcast イベントをリッスンする方法がよくわかりません。このエラーが発生し続けます: AssertionError: expected function (name, args) {...}
明確にするために、私の問題は、実行時のイベント ブロードキャスターまたはリスナーの機能に関するものではありません。アプリケーションは期待どおりに動作します。問題は、テスト スイートでイベントをリッスンすることです。
上記のコードは、この質問に必要なスニペットにすぎないことに注意してください。私のアプリケーションには、設定/呼び出される他の変数/メソッドがあり、それらは正しくテストされます。つまり、実際の取得メソッドが呼び出されるかどうか、または特定の変数が適切に設定されているかどうかをテストすると、それらのテストはパスします。
スコープ変数を混ぜ合わせて一致させ、 $broadcast 経由でリッスンすることさえ試みましたが、何も機能してscope.$on('fetchSuccess', fn)
いないようです。fetchSuccessイベントが発行されないようです。または、適切にリッスンしていません。
前もってありがとう、ライアン。
javascript - Mocha テストで同じファイルを要求する方法
config/index.js
設定されている NODE_ENV 環境変数に基づいて、別の構成ファイルを返すものがあります。
各環境で正しい構成が返されることを確認するための簡単なテストを作成しようとしていますが、最初の require のみが実際に呼び出され、同じファイルの後続の require が値を使用しているという問題が発生しています。最初に必要です。
この問題を解決するには、テストをどのように変更すればよいですか?
config/index.js
そして、これは私がテストしようとしている(正常に動作している)の簡略化されたバージョンです:
javascript - async intern テストの async xhr ハンドラ内の assert(false) はテストに失敗しません
相互に依存するいくつかの xhr 呼び出し (ログイン、データのフェッチ) を実行するインターン テストを作成しました。chai
そのため、それらをネストしましたが、ハンドラー内でアサーション ライブラリを使用できることを望んでいます。
テストが適切に失敗していないことがわかりました。常にハングし、最終的にインターン レポートが表示されます。
assert(false, 'Oh no, something went wrong');
これは、実行されるコード行があるにもかかわらずです。
assert ライブラリ内で見たところ、コール スタックの上位でキャッチされると予想される例外がスローされますが、このアプローチは非同期リクエスト ハンドラのコール スタックには適していません。
コードのこの時点で assert() スタイルの関数を使用できますか? または、によって提供された元の dfd を拒否する必要がありthis.async(timeout)
ますか?
この質問は、彼が this.async() から元の dfd を悪用していたという点で、 Async test doesn't error on failとは異なります。
私の簡易テスト モジュール:
intern.js:
シェル出力: