問題タブ [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 に答える
866 参照

protractor - 分度器テストは成功していますが、テストを実行しませんでした

私はJavaスクリプト分度器キュウリフレームワークが初めてです。

1年前にここで提起された同様の問題を見ることができますが、これは1年前の分度器リリースでも修正されました. したがって、新しい質問を提起します。

キュウリ、分度器、分度器-キュウリ-フレームワーク、チャイ、チャイ-as-promisedの最新バージョンを使用しています。Visual Studio コードをエディターとして使用しています。ノード バージョンは 6.11.4 です。すべてのバージョンの詳細については、以下の package.json をご覧ください。

テストを実行すると、合格の結果で 1 秒もかからずに終了しますが、ブラウザを起動するだけで、ブラウザで何もしません。

私が使用しているファイルを見て、どこに問題があるか教えてください。これが分度器の最新バージョンのバスかどうかはわかりません。

分度器.conf.js:

パッケージ.json:

テスト機能:

test.steps.js:

コンソール出力:

Selenium Chrome ノードのコンソール出力:

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

javascript - chai-as-promised: 1 つのテストでの複数の expect ステートメント

いくつかの約束をテストするためにchai-as-promisedを使用しています。私の問題は、単一のテストで複数のステートメントを期待する方法がわからないことです。が正しく機能するためには、次のexpect().to.be.fulfilledように返す必要があります。

... またはnotify、次のように使用します。

次のように、特定の関数が呼び出されるなど、チェックする必要がある別のことがある場合に問題が発生します。

ここでの問題は、doSomething()が非同期であるため、sinon_function_spyを呼び出したときに への呼び出しがまだ発生していない可能性がありexpect、このテストが不安定になることです。を使用するthenと、次のようになります。

その後、テストは技術的に成功し、期待どおりに失敗しますが、then呼び出しでスローされた例外のために約束が拒否されるため、失敗します。同様に、約束が拒否されることが予想される場合がある場合:

次に、 promise が拒否され、 が呼び出されないため、 のチェックsinon_function_spyは呼び出されませんthen

expect両方のステートメントを確実に実行して正しい値を返すにはどうすればよいですか?