Javascript 主干Sinon假服务器-测试服务器404(500)错误响应

Javascript 主干Sinon假服务器-测试服务器404(500)错误响应,javascript,server,http-status-code-404,sinon,Javascript,Server,Http Status Code 404,Sinon,关于如何创建sinon fakeServer对200个OK ajax请求的响应,有数百万个示例和博客,但我找不到任何正确测试服务器错误的示例 我有一个带有“检查”功能的主干模型,如下所示: 检查:函数(回调){ 这个,取回({ 成功:功能(模型、响应){ if(response.authenticated){ if(回调中的“success”)callback.success(模型、响应); }否则{ if(回调中的“error”)callback.error(模型、响应); } }, 错误:函

关于如何创建sinon fakeServer对200个OK ajax请求的响应,有数百万个示例和博客,但我找不到任何正确测试服务器错误的示例

我有一个带有“检查”功能的主干模型,如下所示:

检查:函数(回调){
这个,取回({
成功:功能(模型、响应){
if(response.authenticated){
if(回调中的“success”)callback.success(模型、响应);
}否则{
if(回调中的“error”)callback.error(模型、响应);
}
},
错误:函数(模型、响应){
if(回调中的“error”)callback.error(model,response.responseJSON[0]);
}
});
}
然后我用Sinon测试此功能-如下所示:

it(“应该在服务器错误上调用回调错误”,函数(完成){
var clock=sinon.useFakeTimers();
this.callback={
成功:sinon.spy(),
错误:sinon.spy()
};
this.server.respondWith(“GET”、“/api/session”[
404,
{“内容类型”:“应用程序/json”},
“[{”测试“:“错误”}]”
]);
此.model.once('error',function(){
expect(this.callback.error.callCount).to.equal(1);
expect(this.callback.error.called).to.be.ok;
完成();
},这个);
this.model.check(this.callback);
//为什么这里的时钟必须设置为10ms?
时钟。滴答(10);
});
直到我添加clock.tick(至少10毫秒)值,测试才会正常运行。 即使没有clock.tick,callback.error也会得到正确处理,但此时测试不起作用

有人能给我解释一下这是怎么回事吗?我混合了一些概念吗


谢谢

如果你不
使用faketimers
(请参阅),测试通过了吗?哇,实际上它没有假计时器就可以工作了!谢谢如果你不
使用faketimers
(请参阅),测试通过了吗?哇,实际上它没有假计时器!谢谢