我正在使用 Jasmine (2.2.0) 间谍来查看是否调用了某个回调。
测试代码:
it('tests', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
done();
});
});
这按预期工作。但是现在,我要添加第二个级别:
it('tests deeper', function(done) {
var spy = jasmine.createSpy('mySpy');
objectUnderTest.someFunction(spy).then(function() {
expect(spy).toHaveBeenCalled();
spy.reset();
return objectUnderTest.someFunction(spy);
}).then(function() {
expect(spy.toHaveBeenCalled());
expect(spy.callCount).toBe(1);
done();
});
});
这个测试永远不会返回,因为显然done
回调永远不会被调用。如果我删除 line spy.reset()
,测试确实完成,但显然在最后一个期望上失败了。但是,该callCount
字段似乎是undefined
,而不是2
。