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 jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---