我有一个方法,当被调用时,它会向服务器发出 HTTP 请求,而不关心之后会发生什么。响应不被解析,在发送请求或接收响应后不会改变其状态。
现在我想测试这个方法,因为没有状态变化,我无法通过检查方法或拥有它的对象来验证 HTTP 请求是否已经发出。我需要以某种方式附加 sinon,$.mockjax
以便我可以执行断言来验证 HTTP 请求确实已发出。
这该怎么做?
我有一个方法,当被调用时,它会向服务器发出 HTTP 请求,而不关心之后会发生什么。响应不被解析,在发送请求或接收响应后不会改变其状态。
现在我想测试这个方法,因为没有状态变化,我无法通过检查方法或拥有它的对象来验证 HTTP 请求是否已经发出。我需要以某种方式附加 sinon,$.mockjax
以便我可以执行断言来验证 HTTP 请求确实已发出。
这该怎么做?
您可以使用该$.mockjax.mockedAjaxCalls()
方法检索 Mockjax 已拦截的调用数组。该数组将包含requestSettings
每个请求的对象,您可以在必要时对其进行检查:
QUnit.test('two calls should be made', function(assert){
// set up the mock
$.mockjax({ ... });
$.ajax({ ... }); // matching ajax call
$.ajax({ ... }); // NON-matching ajax call
$.ajax({ ... }); // another matching ajax call
assert.equal($.mockjax.mockedAjaxCalls().length, 2, 'only two mockjax calls are recorded');
});