問題タブ [chai-as-promised]
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 - ネイティブ Promise と Blubird のパフォーマンスを理解するのに助けが必要
背景:
- どこかのサーバー上の API エンドポイントに対して行われた SOAP リクエストを介して取得されたデータを最初にデータベースに入力する流星アプリを作成しています。
- 最初のリクエストは、私が選択した検索用語による検索です。検索に一致するレコードへの ID のリストが返されます。
- 次に、別の API リクエストを行いますが、今回は、自分のデータベースに保存するレコードごとに (すべてのデータではなく、選択した値のみ)
- 検索用語のリストがある場合は、これらのそれぞれに対して上記が実行されます。
- 「コールバック地獄」を避けるため、また何か新しいことを学ぶ良い機会だと思ったので、順番に並べられた Promises を使用することにしました: forEach searchTerm -> getTheResults.then.forEachResult->fetchRecord
- 100 程度の短いシーケンスでは問題なく動作しましたが、1000 に達するとハングしました。Google おじさんと話した後、ネイティブの Promises が何らかの方法で最適化されておらず、サードパーティのライブラリの方が高速であるというスレッドに出くわしました。そこで私は Bluebird を試してみることにしましたが、これを行う前に、物事がより速くなる可能性があるという主張をテストしました。
コード 以下のコードは、一連の「睡眠約束」を作成します。このアイデアは、Bluebird の promise 実装を交換し、5000 個の Promis の長さのシーケンスでテストを実行するのにかかる時間を観察することでした。
私は約束をテストするために「chai-as-promised」を使用しています。
5000 の Promise チェーンの結果 Bluebird 実装を使用したテストは、Native が約束するよりも約 1 秒遅く完了しました。
ここで間違いを犯したり、何かを見逃したりしましたか?
javascript - chaiでpromiseから返されたjsonをアサートする方法は?
promise から返された json のテストを作成しようとしています。この簡単なコードを作成したので、再現してみてください。
しかし、私は得る:
chai-as-promised と chai-json-equal は別々に機能しますが、一緒には機能しません。この解決策、回避策、または使用できる他のライブラリはありますか?
javascript - promise によって返された関数のテスト - エラーのチェック
promise の一部として返される関数をテストしています。chai-as-promisedを使用しています。
関数が機能することをテストできますが、エラーが適切にスローされることをテストできません。
約束に関連する多くのコードを除外して、テストしようとしている関数:
私のテスト:
テストの出力 -
エラーが正しくスローされることをテストするにはどうすればよいですか? それがモカの問題なのか、約束されたものなのか、それとも約束されたチャイなのか、私にはわかりません。大変助かりました。
chai-as-promised - Chai as Promises: 特定のエラー メッセージに対する「rejectWith」
私はいくつかの可能な拒否された約束を返すことができる関数を持っています:
特定の拒否メッセージが返された場合にのみ、Chai as Promised がこのテストに合格するようにします。
私が見つけたのは、違いがないということです
と
拒否は、これらのrejectedWith
テストのいずれかを満たします。
テスト中の拒否されたプロミスでそのボディが返された場合にのみテストが合格するように、拒否ボディを指定する方法はありますか? Chai-as-promised 6.0.0 を使用しています。
ありがとうございました
node.js - 解決された結果の代わりに Promise オブジェクトを期待し、使用する必要があります
単体テスト用に次の設定をしています。
しかし、モカを実行すると、結果は次のようになります。
そのため、解決された結果に対してではなく、Promise オブジェクト自体に対してテストが行われているように見えます。
chai-as-promised: Installation and Setupによると、セットアップは正しいです。
テストはchai-as-promised: How to Use で説明されているのと同じ方法で作成されます。
expect(promise).
とpromise.should
構文の両方をテストしました。問題が何であるかを知っている人はいますか?
ノードとモジュールの使用バージョンは次のとおりです。
- ノード v4.6.1
- チャイ 3.5.0
- チャイ・アズ・プロミス 6.0.0
- モカ 3.2.0
angularjs - テストで $rootScope の $apply/$digest メソッドを呼び出す正しいタイミング
Angular testing docs は、アサーションをテストする前に $apply が呼び出されるテスト サンプルを示しています。同じことをしようとしましたが、テストが正しく機能していません。壊れるはずの最初のコードが機能します...私のアサーションが実行されていないようです。2 番目のコード、私のテストは機能しますが、ドキュメントとは異なります (スタイルの方が好きです)。
初め:
2番
javascript - promise を返す関数を呼び出す関数のテスト
次の形式のコードがあります。
sut.methodtotest をテストしたいのですが、chai、mocha、require、sinon、および Javascript コミュニティが自由に使えるその他の多数のフレームワークを使用すると、次のようなエラーが表示されます。
私の質問はこれです:依存関係をモックして、モックされたデータを返し、「then」関数を使用できるようにするにはどうすればよいですか?
私のテストコードは次のようになります