gpt4 book ai didi

javascript - 如何按顺序执行异步 Mocha 测试(NodeJS)?

转载 作者:IT老高 更新时间:2023-10-28 21:52:59 27 4
gpt4 key购买 nike

这个问题与 NodeJS 的 Mocha 测试框架有关。

默认行为似乎是启动所有测试,然后在异步回调进入时处理它们。

在运行异步测试时,我想在调用之前的异步部分之后运行每个测试。

我该怎么做?

最佳答案

重点不在于“结构化代码按照您构建它的顺序运行”(惊奇!)——而是正如@chrisdew 所建议的那样,异步测试的返回顺序不能得到保证。重申一下这个问题 - (同步执行)链更下游的测试不能保证由异步测试设置的所需条件将在它们运行时准备好。

因此,如果您需要在第一次测试中设置某些条件(例如登录 token 或类似的),您必须使用像 before() 这样的钩子(Hook)来测试这些条件在继续之前设置.

将依赖测试包装在一个 block 中并在它们上运行 async before 钩子(Hook)(注意 before block 中的“完成”):

var someCondition = false

// ... your Async tests setting conditions go up here...

describe('is dependent on someCondition', function(){

// Polls `someCondition` every 1s
var check = function(done) {
if (someCondition) done();
else setTimeout( function(){ check(done) }, 1000 );
}

before(function( done ){
check( done );
});

it('should get here ONLY once someCondition is true', function(){
// Only gets here once `someCondition` is satisfied
});

})

关于javascript - 如何按顺序执行异步 Mocha 测试(NodeJS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9736429/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com