使用JsTestDriver和Mockjax测试内联回调函数
Testing inline callback function with JsTestDriver and Mockjax
我想测试以下AJAX函数
my.var = true;
my.method = function() {
$.getJSON('/path/to/',
function(data){
my.var = false;
});
}
我应该如何使用JsTestDriver来测试my.var是否已更改?
AsyncTestCase("MyAsyncTestCase", {
$.mockjax({
url: '/path/to/'
});
my.method();
});
我尝试过使用queue.call方法,但未成功
我找到了以下解决方案
// your code
my.var = true;
my.method = function() {
return = $.getJSON('/path/to/',
function(data){
my.var = false;
});
}
// test
AsyncTestCase("MyAsyncTestCase", {
$.mockjax({
url: '/path/to/',
responseTime: 100,
responseText: {
result: true
}
});
queue.call('Step1: send request and expect a callback', function(callbacks){
var onComplete = callbacks.add(function(response){
//console.debug(response);
});
// call method
var jqXHR = my.method();
jqXHR.complete(function(){
onComplete(jqXHR.responseText);
});
});
queue.call('Step 2: after ajax call, make assertions', function(){
// assert variable is false
assertFalse(my.var);
});
});
相关文章:
- JavaScript回调函数
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- 如何正确地将参数传递给RequireJS回调函数
- 回调函数在python代码中离线
- 从AJAX回调函数中分离数据
- 赋值后的回调函数
- 如何在javascript回调函数中返回多个变量
- 函数表达式,返回回调函数
- 等待回调函数执行
- JavaScript回调函数和Google Feed API
- 如何从ajax成功回调函数中读取javascript变量
- 正在保存JavaScript内部回调函数中的值
- 有没有什么方法可以停止Jquery中的animate(也可以停止完整的回调函数)
- 如何在javascript中添加带有回调函数的按钮点击事件作为window.conf
- 在Golang回调函数中启用CORS
- 在初始函数完成之前调用回调函数
- jQuery Mobile:如何在$.Mobile.changePage之前运行回调函数
- 即使使用回调函数也无法返回值
- 为什么prototypjs观察到回调函数有绑定