だから、私はモカとチャイを使ってフロントエンドのテストを行っていますが、シノンを取り入れ始めて、とても気に入っています. エラーをスローするテストが、sinonのドキュメントが示すようにまったく機能していないことを除いて。
基本的に、私はこの方法を持っています:
create: function(bitString, collectionType) {
var collection;
switch(collectionType) {
case 'minutesOfHour':
collection = this.createMinutesOfHour(bitString);
break;
case 'hoursOfDay':
collection = this.createHoursOfDay(bitString);
break;
case 'daysOfWeek':
collection = this.createDaysOfWeek(bitString);
break;
case 'daysOfMonth':
collection = this.createDaysOfMonth(bitString);
break;
case 'monthsOfYear':
collection = this.createMonthsOfYear(bitString);
break;
default:
throw new Error('unsupported collection type ' + collectionType);
}
return collection;
},
そして、私はこの期待でそれをテストしています:
it('throws error if missing second arguement', function() {
sinon.spy(factory, 'create');
factory.create();
expect(factory.create).to.have.thrown();
factory.create.restore();
});
ただし、テストしようとしているエラーも、テストの実行を停止しているようです
sinon.spy には try / catch ロジックが内部的に含まれていると思っていましたが、spy.throw はそれなしではあまり役に立ちません。
http://sinonjs.org/docs/#spies
私は何か間違ったことをしていますか??