Ich versuche, zwei Async-Aufruf in einer Jasmin-Test-Suite zu machen. Der zweite Anruf sollte warten, bis der erste Anruf beendet ist, und dann einen Anruf tätigen. So einfaches Setup:Mehrere Async-Anrufe in Jasmin 1.3
it('async tests', function(){
runs(function() {
flagToServer = false;
flagFromServer = false;
value1 = 0;
value2 = 0;
dataToGet = "";
dataToSend = "";
setTimeout(function() {
flagFromServer = true;
data = getDataFromServer();
}, 500);
});
waitsFor(function() {
value1++;
return flag;
}, "The Value should be incremented", 750);
runs(function() {
expect(value1).toBeGreaterThan(0);
expect(data).toBe(expectedData);
});
//second async call to server;
runs(function() {
dataToSend = manipulate(dataToGet);
setTimeout(function() {
sendDataToServer(dataToSend);
flagToServer = true;
}, 500);
});
waitsFor(function() {
value2++;
return flagToServer;
});
runs(function() {
expect(value2).toBeGreaterThan(0);
expect(eventFromServer).toBe('got data');
});
});
Ist es möglich, über etwas zu tun? Ich konnte keine Verwendung finden, wo mehrere waitFor/runs-Blöcke zusammen verwendet werden. Ist es der richtige Weg, mehrere Async-Aufrufe nacheinander zu testen?