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

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

javascript - Windows への移行後に karma-sinon-chai が失敗する

Karma で単体テストを実行しており、sinon-chai ライブラリを使用しています。

Mac ではすべて正常に動作していましたが、Windows に移行したところ、次のエラーが発生しています。

そのファイルから:

ノードで実行しているため、最初の行の条件が返されることを期待しますtrueが、何らかの理由で「必要」またはmodule定義されていないため、上記のポイントで終了します。

何か案は?

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

javascript - 関数呼び出しをアサートするときに、Sinon スタブ関数が chai Spy によって認識されない

bluebird の約束を返す 2 つの非同期関数があります。

これらのメソッドを次のように呼び出す別のモジュールがあります。

私のテスト ケースでは、Bar.Async2 が呼び出されるかどうかを確認したいのですが、失敗する次のテスト ケースがあります。

コンソール ログから Async2 が呼び出されることを知っているので、なぜスパイがそれを検出しないのか疑問に思っています。

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

javascript - sinon スタブから sinon スタブを返す

sinon スタブを取得して別の sinon スタブを返す/解決するのに問題があります。シノン、チャイ、チャイ・アズ・プロミス、モカを使っています。

いくつかの非同期タスクを順番に実行しています。テストしたいコードは次のようになります。

そして、このためにスタブを作成しようとすると、次のようになります。

「saveit」メソッドは Terminal.prototype にあるため、そこでスタブする必要があります。これを実行しようとすると、次のエラーが表示されます。

行で:

しかし、端末オブジェクトをコンソールにダンプすると、他のスタブ オブジェクトと同じように (少なくとも私の単純な考えでは) 正常に見えます。スタブ化された saveit() メソッドは、テストで「スタンドアロン」と呼ぶことができます。しかし、chai の「return」または chai-as-promised の「resolve」メソッドを介して返すたびに、このエラーが発生します。

これが事実である理由は何ですか?

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

javascript - AngularJS/Ionic/SinonChai - $ionicModal.fromTemplateUrl 関数をモックアップする方法

イオン モーダル コントローラーのテストで問題が発生しています。問題 (または少なくとも私が注目している問題) は、 $ionicModal.fromTemplateUrl 関数のモックアップです。イオンのドキュメントによると、モーダルのインスタンスに解決される promise を返すことになっています。

ここに私の工場があります:

そして、ここに私のテストがあります:

getController 関数がコントローラーを正しく返すかどうかもわかりません。$ionicModal を使用するのはこれが初めてなので、ご指摘いただければ幸いです。ありがとう。

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

javascript - Sinon で PouchDB をスタブすると失敗する

呼び出された関数で、pouchDB の「put」関数をスタブしようとしていますが、失敗しています。

私のDB機能-

私のテスト関数:

Console: req, res の後、次は testOutput が設定された後、sinon.stub の後 put の後: addPendingRequest 内

したがって、 PendingDB.put は入力されず、私のテスト PendingDBTest.called は false を返すため、失敗します。

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

javascript - 関数内のプロミス内の関数が呼び出されることを確認するためのテスト?

Mocha、Chai、および Sinon を使用して Angular コードをテストしています。

テストする必要がある update という関数にいくつかのコードがあります

そのコードはすべて update 関数内にあります。これはすべて、現在テスト中のコントローラー内にあります。

私のテストで scope.update() を呼び出すとき、scope.addTabletoScope(x) が呼び出されることを確認したいと思います。

テストを実行する前に、私はスパイを持っています

その関数はスコープにバインドされているためです。

これが私が実行した1つのテストです。

spy.called が false であるため、これは失敗します。

私が試したもう一つのことは

これも機能しません。これのどこが間違っているのですか?