gpt4 book ai didi

javascript - 在 Mocha 中的 Before Hook 之前执行 BeforeEach Hook

转载 作者:行者123 更新时间:2023-11-29 22:57:37 26 4
gpt4 key购买 nike

我想创建一个 beforeEach Hook ,它在 before Hook 之前执行。

基本上我想要以下行为:

beforeEach(() => {
console.log('beforeEach')
})

describe('tests', () => {
before(() => {
console.log('before')
})

it('test 1', () => {
console.log('it')
})
})

然后我得到:

before
beforeEach
it

但我想要的输出是:

beforeEach
before
it

获得所需行为的正确结构是什么?

解决方法

目前我找到了一个使用两个嵌套的 beforeEach 的解决方法:

beforeEach(() => {
console.log('beforeEach1')
})

describe('tests', () => {
beforeEach(() => {
console.log('beforeEach2')
})

it('test 1', () => {
console.log('it')
})
})

哪个输出是:

beforeEach1
beforeEach2
it

最佳答案

我不确定(我没有测试过)但是来自 doc看起来您的根级别 beforeEach 可能不会按照您的想法进行。

...
run spec file/s
|
|--------------> per spec file
suite callbacks (e.g., 'describe')
|
'before' root-level pre-hook
|
'before' pre-hook
|
|--------------> per test
'beforeEach' root-level pre-hook
|
'beforeEach' pre-hook
...

从上面的图片中,您可以看到对于每个 describe 调用了 before 根级预 Hook 。只需将您的根级别 beforeEach 放在 before 中,它应该可以解决。

一般规则是 before 回调总是在 beforeEach 回调“之前”(没有双关语意),独立于它们定义的级别。

关于javascript - 在 Mocha 中的 Before Hook 之前执行 BeforeEach Hook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56345298/

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