因此,基本上,我有此类Abc,在运行时执行期间,我在两点调用了XHR请求。我面临的问题是,锡诺提供的请求对象只有其中一个请求,而没有两个。 尽管在以后的阶段,这个新请求被推入了请求队列。
describe("sinon fake xhttp fail debug", () => {
beforeEach(function() {
this.xhr = sinon.useFakeXMLHttpRequest();
this.xhr.onCreate = function (xhr) {
requests.push(xhr);
};
});
afterEach(function () {
this.xhr.restore();
});
it('Test', (done) => {
var abcObj = new Abc();
abcObj.foo().then(() => {
// certain validations of the class being tested.
});
// console.log(requests.length); Here requests.length = 1
requests[0].respond(200, {'Content-Type': 'text/xml'}, xmlStr);
// requests[1] will not exist. So I am unable to requests[1].respond
});
});
但是,在foo()方法中进行了一系列操作之后,this.xhr.onCreate方法实际上确实将第二个xhr请求推送到了请求列表中。 如何确保定义了request [1]并且可以安全地使用request [1] .respond方法?