Estoy escribiendo un caso de prueba de unidad para la función de llamada Ajax prometida que se escribe comúnmente para manejar todas las llamadas Ajax. Cuando estoy tratando de bloquear esta función común. Mi Promesa cortada no se resuelve y no entra dentro de la declaración de entonces y no llama a la función de devolución de llamada exitosa dada dentro de la declaración de entonces.
function ajaxCallPromise() { return new Promise((resolve, reject) => { $.ajax({ url: url, type: 'GET, success: function (data) { resolve(data) }, error: function (error) { reject(error) }, }) }) } // Calling the promised Ajax function here ajaxCallPromise() .then((data) => { console.log(data) doSomethingElse() }) .catch((error) => { console.log(error) })Jsunit stubbing aquí
it('should ajax components', function (done) { var newPromise = new Promise(resolve => { resolve(socialJson); }); var resolveStub = sinon.stub(window, 'ajaxCallPromise'); resolveStub.returns(newPromise); // Calling the promised function window.ajaxCallPromise(); });Después de hacer stubing, la devolución de llamada de doSomethingElse no está llamando aquí