【发布时间】:2015-04-02 23:25:49
【问题描述】:
我将 QUnit 与 sinon 一起使用。如何让 sinon 的 fakeserver 响应由相同方法调用的链式 ajax?
module('demo', {
beforeEach: function(){
this.server = sinon.fakeServer.create();
},
afterEach: function(){
this.server.restore();
}
});
test('chained ajax calls', function(assert){
this.server.respondWith('GET', '/foo', [200,
{ 'Content-Type': 'application/json' }, '{ "foo": 1 }' ]);
this.server.respondWith('GET', '/bar', [200,
{ 'Content-Type': 'application/json' }, '{ "bar": 1 }' ]);
var successCount = 0;
$.get('/foo', function(data){
successCount++;
$.get('/bar', function(){
console.log('bar success');
successCount++;
});
});
this.server.respond();
assert.strictEqual(successCount, 2);
});
我上面的问题是我只能从其中一种方法中得到响应。 fakeserver 能处理这个吗?
更新:似乎添加另一个server.respond() 可以解决问题。但一定有更好的办法吧?
根据文档,无论 ajax 调用次数如何,听起来都应该调用一次:
server.respond(); 使所有排队的异步请求都收到响应。
【问题讨论】:
标签: javascript ajax qunit sinon