在async之前使用mocha共享行为。

问题描述 投票:0回答:1

背景: 鉴于 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)也是一种选择,但那真的很乱,我更喜欢别的东西,当然,如果有别的东西的话。

typescript mocha
1个回答
0
投票

我后来找到了答案,在这里记录的非常好。在每次测试前在摩卡套件中设置变量?

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

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}`)})
}
© www.soinside.com 2019 - 2024. All rights reserved.