現在、アプリを でテストしてい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
アイデア/提案はありますか?