Javascript 如何验证mockjax是否已被调用

Javascript 如何验证mockjax是否已被调用,javascript,qunit,sinon,mockjax,Javascript,Qunit,Sinon,Mockjax,我有一个方法,当被调用时,会向服务器发出HTTP请求,而不关心之后会发生什么。响应不会被解析,并且在发送请求或接收响应后不会更改其状态 现在我想测试这个方法,因为没有状态变化,我无法通过检查方法或拥有它的对象来验证HTTP请求是否已经发出。我需要以某种方式将sinon附加到$.mockjax,这样我就可以执行断言来验证HTTP请求是否确实发出了 如何做到这一点?您可以使用$.mockjax.mockedAjaxCalls()方法检索mockjax截获的调用数组。数组将包含每个请求的request

我有一个方法,当被调用时,会向服务器发出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');
});