1

Mocha、Chai、Sinon、Chai-as-promised、および chai-sinon を使用して Karma テスト スイートを実行しようとしています。

現在、モカ、チャイ、シノンのフレームワークのみでセットアップされています。

frameworks: ['mocha', 'requirejs', 'sinon', 'chai']

ここで、いくつかのカルマ プラグイン、つまり karma-chai-sinon と karma-chai-as-promised を追加してみました。次に、上記を次のように変更します

frameworks: ['mocha', 'requirejs', 'chai-sinon', 'chai-as-promised', 'chai']

私の単体テストでは

expect(stub).to.not.have.been.called();

しかし、これにより「TypeError: '[object Object]' is not a function...」というエラーが表示されます。

expect(stub.called).to.equal(false);

期待どおりに動作します。

カルマ プラグインのコードを調べてみましたが、意味がわかりません。カルマ プラグインのどこかに 'chai.use(chaiAsPromised)' と 'chai.use(sinonChai)' があると思っていましたが、そうではありません。 . Karma の Web サイトでは、プラグイン/フレームワークが内部でどのように機能するかについても説明していません。

これを設定するのを手伝ってくれる人はいますか?

前もって感謝します。

4

1 に答える 1

1

デフォルトでは、引数をとらないアサーションは括弧なしで宣言する必要があります:

expect(stub).not.to.have.been.called;

(ええ、それは奇妙です。)

これは、この場合は、アクセスcalled時にアサーションを実際に設定するゲッター関数であるためです。

括弧を使用してこれらのアサーションを関数として呼び出したい場合は、dirty-chai (およびkarma-dirty-chai ) などのプラグインを使用できます。

于 2016-01-18T16:44:07.587 に答える