【发布时间】:2016-06-15 11:32:26
【问题描述】:
我正在尝试在一个 jasmine 测试套件中进行两个异步调用。 第二个电话应该等到第一个电话完成后再拨打电话。 如此简单的设置:
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');
});
});
上面可以做点什么吗?我找不到一起使用多个 waitsFor/runs 块的用法。一个接一个地测试多个异步调用是否正确?
【问题讨论】:
标签: javascript angularjs asynchronous jasmine