外部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);
});
});
换句话说,上述测试是否可以通过?
答案 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中。