外部beforeEach
是否保证在内部beforeEach
开始之前完成?
let qux;
beforeEach(() => {
//
// other synchronous code here
//
qux = null;
});
describe('Description', () => {
beforeEach(() => {
qux = 0;
//
// other synchronous code here
//
});
it('Predicate', () => {
expect(qux).toEqual(0);
});
});
换言之,上述测试是否保证通过?
最佳答案
是的,外部beforeEach
保证在内部beforeEach
开始之前完成:Jest
通过从定义spec的位置开始遍历父函数here并返回反向列表here来查找spec的所有before
函数。before
函数、test和after
函数被放入数组here中。
每个函数都由mapper
包装,它返回一个在函数完成、测试取消、发生错误或达到超时之前无法解析的承诺,并且生成的承诺由reduce
here链接在一起。
因此,除非出现错误、超时或测试被取消,否则beforeEach
函数将按顺序运行到完成,并且上面的测试将通过。
关于javascript - 在描述内部的beforeEach开始之前,描述外部的beforeEach是否总是会完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52599141/