之前将摩卡共享行为与异步一起使用



上下文:鉴于 https://github.com/mochajs/mocha/wiki/Shared-Behaviours 我希望能够以前使用异步重用测试块。例如:

describe('test', () => {
let beforeStuff
before('something', async () => {
return new Promise((resolve, reject) => {
let wait = setTimeout(() => {
clearTimeout(wait)
beforeStuff = 'something_else'
resolve('There is something')
}, 200)
})
})
reusableIts(beforeStuff)
})
function reusableIts(varValue) {
it('testBlock', () => {console.log(`Value of var is $varValue`)})
}

问题:有没有办法使共享行为接受参数并异步工作,因为上面的例子产生了

变量的值未定义

注意:我假设将一个承诺分配给var并在之后解决它之前,在可重用中等待它(同时使其异步(将是一种选择,但这真的很混乱,我更喜欢别的东西,当然,如果有别的东西。

我稍后找到了答案,并且在这里记录得很好:每次测试前在摩卡套件中设置变量?

基本上你需要一个上下文对象:

describe('test', () => {
let context = {
beforeStuff: undefined
}
before('something', async () => {
return new Promise((resolve, reject) => {
let wait = setTimeout(() => {
clearTimeout(wait)
context.beforeStuff = 'something_else'
resolve('There is something')
}, 200)
})
})
reusableIts(context)
})
function reusableIts(context) {
it('testBlock', () => {console.log(`Value of var is ${context.beforeStuff}`)})
}

最新更新