我们正在尝试为JS沉重的Web应用程序实施QUnit JavaScript测试。我们正在努力寻找一种方法来成功测试涉及jQuery AJAX请求的方法。例如,我们有以下的构造函数(显然这是一个非常简单的例子):使用QUnit单元测试AJAX请求
var X = function() {
this.fire = function() {
$.ajax("someURL.php", {
data: {
userId: "james"
},
dataType: "json",
success: function(data) {
//Do stuff
}
});
};
};
var myX = new X();
myX.fire();
我们正在努力寻找一种方法来测试fire
方法,最好用存根URL,而不是真正的someURL.php
。
目前唯一明显的解决方案是将URL和success
回调作为参数添加到构造函数中。这样,在测试中,我们可以创建一个X
的新实例并传递存根URL,并在存根返回响应时运行回调。例如:
test("Test AJAX function", function() {
stop();
var myX = new X();
//Call the AJAX function, passing in the stub URL and success callback
myX.fire("stub.php", function(data) {
console.log(data);
start();
});
});
但是,这似乎不是一个很好的解决方案。有没有更好的办法?
这太好了。非常感谢:) – 2012-02-24 15:27:13