1. ホーム
  2. javascript

[解決済み] Mochaで投げられたエラーのテスト [重複] [重複

2023-01-03 11:46:33

質問

私はこの問題でいくつかの助けを見つけることを望んでいます。 私は、私が書いているアプリケーションのためのテストを書こうとしています。 私は問題を以下のサンプルコードに集約しました。 私はエラーがスローされたことをテストしたいのです。 私はテストランナーとしてTestacularを、フレームワークとしてmochaを、アサーションライブラリとしてchaiを使用しています。 テストは実行されますが、テストはエラーがスローされたため失敗します! どんな助けでも大いに感謝します。

function iThrowError() {
    throw new Error("Error thrown");
}

var assert = chai.assert,
    expect = chai.expect;
describe('The app', function() {
    describe('this feature', function() {
        it("is a function", function(){
            assert.throw(iThrowError(), Error, "Error thrown");
        });
    });
});

どのように解決するのですか?

関数を assert.throws() に正しい方法で渡していません。

assert.throws() 関数はその最初のパラメータとして関数を期待します。あなたのコードでは、iThrowError を呼び出し、その戻り値として assert.throws() .

基本的には、これを変更すること。

assert.throws(iThrowError(), Error, "Error thrown");

をこれに変更します。

assert.throws(iThrowError, Error, "Error thrown");

は問題を解決するはずです。

argsで。

assert.throws(() => { iThrowError(args) }, Error);

または

assert.throws(function() { iThrowError(args) }, Error, /Error thrown/);