I'd like to test the following code to make sure:
1. setTimeout calls the function
2. ajax success callback is called
setTimeout(function() {
$.ajax({
url: './index.html',
success: function() {}
})
}, 100);
If I only have one nested asynchronous test like this, it works:
asyncTest('asyncTest', function() {
setTimeout(function() {
console.log(1);
ok(true, 'success');
start();
asyncTest('nested asyncTest', function() {
$.ajax({
url: './index.html',
success: function() {
console.log(2);
ok(true, 'ajax success');
start();
}
})
})
}, 100)
})
But if there are multiple tests, it works, but run out of order:
asyncTest('asyncTest', function() {
setTimeout(function() {
console.log(1);
ok(true, 'success');
start();
asyncTest('nested asyncTest', function() {
$.ajax({
url: './index.html',
success: function() {
console.log(2);
ok(true, 'ajax success');
start();
}
})
})
}, 100)
})
asyncTest('another asyncTest', function() {
setTimeout(function() {
console.log(3);
ok(true, 'another success');
start();
asyncTest('another nested asyncTest', function() {
$.ajax({
url: './index.html',
success: function() {
console.log(4);
ok(true, 'another ajax success');
start();
}
})
})
}, 100)
})
If you open firebug, you can see the order is "1,3,2,4", which can
cause disasters.
The real world problem is that I use setInterval to periodically check
location.hash to implement a cross-browser "onhashchange" event, and I
bind a function to this event, when the function gets called, it will
make an ajax call. I set a different value to location.hash in every
test to trigger the event, which is actually asynchronous. So how do I
use qunit to test this code?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---