現在、アプリを でテストしてい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
を提供するため、テストではステートメントを避けたいと思います。chai
throw
アイデア/提案はありますか?