Как проверить, что mockjax был вызван
У меня есть метод, который при вызове делает HTTP-запрос к серверу и не заботится о том, что произойдет после. Ответ не анализируется и не меняет своего состояния после отправки запроса или получения ответа.
Теперь я хочу протестировать этот метод, и, поскольку нет изменения состояния, я не могу проверить, был ли выполнен HTTP-запрос, путем проверки метода или объекта, которому он принадлежит. Мне как-то нужно прикрепить sinon к $.mockjax
так что я могу выполнить утверждение, проверяющее, что HTTP-запрос действительно был сделан.
Как это сделать?
1 ответ
Вы можете использовать $.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');
});