外部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包装,它返回一个在函数完成、测试取消、发生错误或达到超时之前无法解析的承诺,并且生成的承诺由reducehere链接在一起。
因此,除非出现错误、超时或测试被取消,否则beforeEach函数将按顺序运行到完成,并且上面的测试将通过。

关于javascript - 在描述内部的beforeEach开始之前,描述外部的beforeEach是否总是会完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52599141/

10-12 23:42