0
使用笑话我如何测试一个函数,使我的jQuery应用程序中的ajax请求,并模拟其响应?我的应用程序没有在nodejs中编译,而是直接在浏览器中运行。在jest站点https://github.com/facebook/jest/tree/master/examples/jquery上的例子假定ajax函数是一个单独的模块,整个应用程序都会被编译成类似webpack的东西。这里是我的应用程序:
(function(root) {
"use strict";
// if environment is node then import jquery.
var $ = (typeof module === "object" && module.exports) ? require('jquery') : jQuery;
function displayUser() {
var fetchCurrentUser = function (url) {
var xhr = $.get(url);
$.when(xhr)
.done(function(data) {
greet(data);
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
});
};
var greet = function(data) {
$('#greet').text('Hello ' + data.name);
}
fetchCurrentUser('/my/api');
return {
fetchCurrentUser: fetchCurrentUser,
greet: greet
};
}
// Added this conditional so I can test in jest
if (typeof module === "object" && module.exports) {
// Node
module.exports = displayUser();
} else {
// Browser (root is window)
root.displayUser = displayUser();
}
})(this);