gpt4 book ai didi

javascript - 如何与jasmine.execute同步?

转载 作者:行者123 更新时间:2023-11-30 14:50:41 25 4
gpt4 key购买 nike

我在我的项目中使用 jasmine 作为库,我一直在寻找 jasmine node js docs关于如何将 jasmine.execute 与我的其余代码同步,但是,由于 execute 返回 undefined (而不是 Promise 正如我所料),我不清楚如何与执行同步并仅在 jasmine 完成执行后才执行某些操作。

例如,在下面的代码中,如何才能在 jasmine 完成后才执行 doSomething()

var Jasmine = require('jasmine');
var jasmine = new Jasmine();

jasmine.loadConfig({
spec_dir: 'spec',
spec_files: [
'someTest.js',
]
});

jasmine.execute();

doSomething(); // is done before jasmine finishes

有没有办法与执行同步?

最佳答案

您可以使用 jasmine 提供的 onComplete 事件与执行同步。

基本上,您需要在 onComplete 回调中创建并履行 promise 。

这是一个示例代码:

var Jasmine = require('jasmine');
var jasmine = new Jasmine();

jasmine.loadConfig({
spec_dir: 'spec',
spec_files: [
'someTest.js',
]
});

var executeJasmine = new Promise( (resolve,reject) => {
jasmine.execute();
jasmine.onComplete(function(status) {
// status is true if all specs are passed
// false otherwise
resolve(status);
});

});

executeJasmine().then((passed) => {
// code that gets executed only AFTER jasmine finishes execution
doSomething();

if(passed) {
console.log('All specs have passed');
}
else {
console.log('At least one spec has failed');
}
})

关于javascript - 如何与jasmine.execute同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147010/

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