官方文档中,描述了beforeEach 、afterEach、beforeAll 和 afterAll。
Setup and Teardown · Jest 中文文档 | Jest 中文网
(吐槽一句,这TM叫中文网,挂羊头卖狗肉.....)
根据官方得文档呢,感觉十分抽象,为此自己写一个测试案例去验证:(代码在最后面)
beforeAll 和 afterAll 只执行一次,只在测试开始和结束执行,即使是多个description(),就是说只在当前这个页面得jest的启动和结束执行
beforeEach 和 afterEach 在每一个test的开始和结束都执行。
代码:
使用beforeAll 和 afterAll
let i = 0;
let j = 0
beforeAll(() => {
++i;
console.log(`before All ${i}`);
});
afterEach(() => {
j++;
console.log(`after All ${j}`);
});
describe(`test`,()=>{
test('test 1', () => console.log(`test 1 ${i}`));
test('test 2', () => console.log(`test 2 ${i}`));
})
输出结果:
before All 1
test 1 1
test 2 1
after All 1
使用beforeEach 和 afterEach
let i = 0;
let j = 0
beforeEach(() => {
++i;
console.log(`before All ${i}`);
});
afterEach(() => {
j++;
console.log(`after All ${j}`);
});
describe(`test`,()=>{
test('test 1', () => console.log(`test 1 ${i}`));
test('test 2', () => console.log(`test 2 ${i}`));
})
输出结果:
before All 1
test 1 1
after All 1
before All 2
test 2 2
after All 2
忘记改名称了,但是不影响