所以,我正在使用mocha与chai进行前端测试,但我开始整合sinon并且非常喜欢它.除了测试抛出错误并不能解决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;
},
Run Code Online (Sandbox Code Playgroud)
我正在用这个期望来测试它:
it('throws error if missing second arguement', function() {
sinon.spy(factory, 'create');
factory.create();
expect(factory.create).to.have.thrown();
factory.create.restore();
});
Run Code Online (Sandbox Code Playgroud)
但是,我试图测试的错误似乎也停止了测试的执行

我认为sinon.spy会在内部包含一些try/catch逻辑,spy.如果没有它,它似乎没有用.
http://sinonjs.org/docs/#spies
难道我做错了什么??