在描述外部的beforeEach会始终在描述内部的beforeEach开始之前完成吗?

时间:2018-10-01 21:29:19

标签: javascript node.js jestjs

外部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);
  });
});

换句话说,上述测试是否可以通过?

2 个答案:

答案 0 :(得分:2)

是的,保证外部when (total_purchases>100 and total_purchases<200) then dbms_output.put_line(‘mid‘); 在内部beforeEach开始之前完成:

beforeEach通过在规范的定义位置开始并沿着父级here并返回反向列表here,找到规范的所有Jest函数。

before函数,测试函数和before函数被放入数组here中。

每个函数都由mapper包裹起来,该函数返回一个在函数完成,测试被取消,发生错误或达到超时之前不解决的承诺产生的承诺由after here链接在一起。

因此,除非出现错误,超时或测试被取消,否则reduce函数将按顺序运行至完成,并且上述测试将通过。

答案 1 :(得分:1)

PR中有一些信息,它增加了对多个beforeEach / afterEach调用(https://github.com/qunitjs/qunit/pull/1188/files)的支持-只要您的操作是同步的,就可以了-您可以在测试用例中进行验证在上面的PR中。