背景: 鉴于 https:/github.commochajsmochawikiShared-Behaviours。 我希望能够在之前使用async重用测试块。例如,我希望能够使用async重用测试块。
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的值是未定义的
注。我认为,将承诺分配给: 变种 而后在 之前,等待它在 可重复使用(同时使其成为async)也是一种选择,但那真的很乱,我更喜欢别的东西,当然,如果有别的东西的话。
我后来找到了答案,在这里记录的非常好。在每次测试前在摩卡套件中设置变量?
基本上你需要一个上下文对象。
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}`)})
}