12

現在、アプリを でテストしていchaiます。メソッドの 1 つによってスローされたエラーをテストしたいと思います。そのために、私はこのテストを書きました:

expect ( place.updateAddress ( [] ) ).to.throw ( TypeError );

そして、ここに方法があります:

Place.prototype.updateAddress = function ( address ) {
    var self = this;

    if ( ! utils.type.isObject ( address ) ) {
        throw new TypeError (
            'Expect the parameter to be a JSON Object, ' +
            $.type ( address ) + ' provided.'
        );
    }

    for ( var key in address ) if ( address.hasOwnProperty ( key ) ) {
        self.attributes.address[key] = address[key];
    }

    return self;
};

問題はchai、メソッドが ... をスローするため、テストで失敗することですTypeError。これは予想される動作であるため、失敗するべきではありません。ステートメントは次のとおりです。

ここに画像の説明を入力

次のテストで問題を回避しました:

    try {
        place.updateAddress ( [] );
    } catch ( err ) {
        expect ( err ).to.be.an.instanceof ( TypeError );
    }

しかし、のような組み込みメソッドtry... catchを提供するため、テストではステートメントを避けたいと思います。chaithrow

アイデア/提案はありますか?

4

1 に答える 1