如何验证是否已调用mockjax

时间:2014-07-24 03:15:36

标签: javascript qunit sinon mockjax

我有一个方法,在调用时,向服务器发出HTTP请求,而不关心之后会发生什么。响应未解析,并且在发送请求或接收响应后不会更改其状态。

现在我希望测试这个方法,因为没有状态更改,我无法通过检查方法或拥有它的对象来验证HTTP请求。我不知何故需要将sinon附加到$.mockjax,以便我可以执行断言来验证HTTP请求确实已经完成。

怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用$.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');
});