問題タブ [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.

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

javascript - Mocha で promise をテストする方法

Promise を返す非同期関数をテストするために Mocha を使用しています。

プロミスが正しい値に解決されることをテストする最良の方法は何ですか?

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

selenium - Chai-As-Promised はアサーション エラーを食べています

Selenium-webdriverテストを作成するために、chai-as-promised + mochaを使用しています。webdriver はpromisesを広範囲に使用するため、これらのタイプのテストには chai-as-promised を使用した方がよいと考えました。

問題は、テストが失敗したときにエラーが mocha によって適切にキャッチされず、何も出力せずに失敗することです。

サンプルコード:

文書化された動作によると、期待が失敗した場合、chai-as-promisedはエラーを mocha に渡す必要があります。右?

バリエーションとして、

私もこれらを試しましたが、役に立ちませんでした:

#2

#3

#4

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

node.js - 実際にmongoに接続せずに、mongoに接続するメソッドを単体テストする方法は?

mongo に接続するメソッドをテストするテストを作成しようとしていますが、実際には mongo を実行し、実際に接続してテストを成功させる必要はありません。

私のmongoデーモンが実行されているときに成功する私の現在のテストは次のとおりです。

mongoFactory.getConnection コード:

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

javascript - Chai-as-promised、Promised 配列は大まかに等しい必要があります

promise 配列がゴールド スタンダードから順序付けを引いたものに等しいと断言する方法はありますか? 順序付けが保証されていないため、Deep equal は失敗します。配列は非同期的に構築されています。

私が知る限り、CaP には ".should.eventually.include.all([])" などは含まれていません。すべてのエントリをチェックすることはできないと思います。なぜなら、notify(done) はどこにチェーンされるのでしょうか?

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

webdriver - 約束通りの分度器、キュウリ、チャイ: チャイのアサーションが失敗した場合

分度器を使用してキュウリのテストを実行しています。テスト内で、次のアサーションがあります。

アサーションが正しい場合は問題ありません。ただし、私の labelText が arg1 と異なる場合、引き続き実行したいと思いますが、例外または失敗のコールバックを追加する方法がわかりません。現時点では、私のアプリケーションは終了しています。これは、失敗コールバックを使用していないためです (どこに置くべきか知りたいです)。

また、callback(); を配置する必要があるかどうかもわかりません。今どこにあるか。

オンラインで解決策を探していますが、Mocha を使用した例しか見つかりません。モカやジャスミンは使っていません。分度器でCucumberフレームワークを使用しています。Cucumberjs にはアサーション ライブラリがないため、chai-as-promised を追加しました。ありがとう!

0 投票する
3 に答える
3786 参照

jasmine - モカとチャイの分度器

分度器を使い始めて、最初にやろうとしたことは、ジャスミンの代わりにモカとチャイを使うことです. それが良いアイデアだったかどうかは今となってはわかりませんが。

まず、すべてのスペック ファイルから Chai にアクセスできるようにする必要がありました。毎回インポートする必要はありません。protractor.conf ファイルで実行できることがわかりました。

現在、次のような仕様になっています。

それを機能させるために私ができること:

しかし、それは醜いです。私はいつも何かを包み込みたくありません.then。もっといい方法があればいいのに(?)

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

node.js - chai.assert.isRejected メッセージバリデーターが機能しない

私は次のテストを書こうとしています:

このテストを実行すると成功しますが、次のように失敗することを確認するためにごまかすと、まだ合格します。

私も次のことを試しました:

しかし、失敗するようです:

AssertionError: [エラー: 金額は有効な数値ではありません] で拒否されると予想されていましたが、[エラー: 金額は有効な数値ではありません] で拒否されました

異なるエラー インスタンスを参照しているが、100% 確実ではないため、失敗したと信じる理由があります。

理想的には、適切なエラー/メッセージが返されるようにしたいのですが、それを理解できないようで、助けを求めていました.

** 注意: chai-as-promised も使用しています

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

javascript - 分度器 w/ chai-as-promised を使用してプロミスの配列を処理するにはどうすればよいですか

自動化されたテスト スイートを構築するために、 CucumberJSchai-as-promised (CucumberJS にはアサーション ライブラリが組み込まれていないため) でProtractorを使用しています。

単一のアサーションに対してはすべて正常に機能します (chai-as-promisedのexpect機能を使用)。ただし、同じテスト (ステップ) 内で複数の promise を処理しようとすると、問題が発生します。次の例では、verifyUserFirstName は、特定の行の td.getText() にマップされた promise を返します。

現在、expect() 行のいずれかが失敗すると、Protractor は終了し、残りのテストを実行せずにブラウザー ウィンドウをハングさせたままにします。

単一の expect() だけを特徴とするステップが失敗した場合 (以下の例を参照)、すべてが完全に機能します。失敗したステップとして記録され、分度器は残りのテストを完了まで実行し続けます。誰もこれを経験しましたか?

0 投票する
0 に答える
79 参照

javascript - コールバックの値が最終的に変更されることをアサーションするにはどうすればよいですか?

現在、要素をクリックすると別の要素の値が最終的に変化することを主張するテストを作成しようとしています。私は次のことを試しました:

上記のテストは、予期した時点で stateEc 要素のテキストが "Ongoing" だったため失敗しました。次に、次を追加しました

テストは毎回パスするようになりました - 問題は、私がこのソリューションを嫌い、正直に言うと、chai-as-promised の目的は、特定の制限時間内に真になる必要のあるアサーションを作成できることだと思ったことです。私は何を間違っていますか?

0 投票する
3 に答える
2783 参照

jasmine - 分度器の約束を文字列に変換する方法

私は分度器とジャスミンに少し慣れていません. getText() を使用してフェッチした要素のリストに特定の要素が含まれているかどうかを確認しようとしています:

次の要素を考慮してください

上記の変数は両方とも promise を返すため、次のようにします。

失敗するでしょうし、実際に失敗します。

したがって、elementToBeSearched文字列に変換すると有益であり、私の人生が楽になると思います。getText()promise を文字列に変換する方法について解決策を提案してください。ありがとう