Javascript ava中的连续异步测试步骤 问题
流行的软件包提供了一个简单而强大的javascript测试框架:Javascript ava中的连续异步测试步骤 问题,javascript,testing,fixtures,ava,Javascript,Testing,Fixtures,Ava,流行的软件包提供了一个简单而强大的javascript测试框架: 从“ava”导入测试; 测试('single step',t=>{ t、 是('bar','bar'); t、 end(); }); 同步代码的测试非常简单。但是,我不知道如何使用多个连续的依赖步骤编写测试 例如,我想测试一个RESTAPI。我想使用POST创建一个资源,确保它存在于GET调用中,并使用delete删除它 不用说,顺序很重要:POST调用必须在GET调用开始之前完成,有时我们甚至希望在两个步骤之间有一个睡眠时间
从“ava”导入测试;
测试('single step',t=>{
t、 是('bar','bar');
t、 end();
});
同步代码的测试非常简单。但是,我不知道如何使用多个连续的依赖步骤编写测试
例如,我想测试一个RESTAPI。我想使用POST
创建一个资源,确保它存在于GET
调用中,并使用delete
删除它
不用说,顺序很重要:POST
调用必须在GET
调用开始之前完成,有时我们甚至希望在两个步骤之间有一个睡眠时间
我试过什么
- 尝试了一系列
s,其中每个调用的回调是下一个测试步骤。这是相当不可读的setTimeout
ava
编写包含多个连续步骤的测试的正确方法是什么
这些步骤是异步和连续的如果您通过顺序执行器运行代码,您可以将缓慢的函数和逻辑混合到复杂的场景中。您只需将代码编写为同步代码,并将其放入函数:
function process() {
var data = jQueryGetJSON(nsynjsCtx, "data/index.json").data; // ajax call to get some data
for(var i in data) { // data is ready at this point
var resp = jQueryGetJSON(nsynjsCtx, "data/"+data[i]).data; // another ajax call
// ... resp is ready here, do processing of resp...
nsynWait(nsynjsCtx,100); // wait 100ms
}
return someResult;
}
然后通过nsynjs运行该函数:
nsynjs.run(process,this,function (someResult) {
console.log('done');
// put t.end() inside this callback
});
请参阅此处的更多示例:如果通过顺序执行器运行代码,则可以将缓慢的函数和逻辑混合到复杂场景中。您只需将代码编写为同步代码,并将其放入函数:
function process() {
var data = jQueryGetJSON(nsynjsCtx, "data/index.json").data; // ajax call to get some data
for(var i in data) { // data is ready at this point
var resp = jQueryGetJSON(nsynjsCtx, "data/"+data[i]).data; // another ajax call
// ... resp is ready here, do processing of resp...
nsynWait(nsynjsCtx,100); // wait 100ms
}
return someResult;
}
然后通过nsynjs运行该函数:
nsynjs.run(process,this,function (someResult) {
console.log('done');
// put t.end() inside this callback
});
请参阅此处的更多示例:如果您希望在单个测试中完成所有这些步骤,请确保您可以从请求库中获得承诺。然后使用
async
/wait
如果您希望在单个测试中完成所有这些步骤,请确保您可以从请求库中获得承诺。然后使用async
/wait