beforeEach()函数用于在每个测试运行之前运行一段代码。它允许我们在每个测试之前设置共享的测试环境或变量。这样可以确保每个测试都在相同的环境下开始。
beforeAll()函数在所有测试之前只运行一次,所以上下文会有影响。
同理afterEach,afterAll,分别是每个测试之后运行,和所有测试之后只运行一次。
代码举例:
安装jest相关依赖
# jest本体
npm install --save-dev jest
# jest的类型声明
npm install --save-dev @types/jest
# typescript中使用
npm install --save-dev ts-jest
代码示例
class Calculator {
count: number;
constructor(count) {
this.count = count;
}
add(val) {
this.count = (this.count + val);
return this.count;
}
subtract(val) {
this.count= (this.count - val);
return this.count;
}
}
export { Calculator };
Test beforeEach
import { Calculator } from "./Calculator";
describe("Calculator", () => {
let calculator: Calculator;
beforeEach(() => {
calculator = new Calculator(10);
});
it("should add numbers correctly", () => {
const result = calculator.add(1);
expect(result).toEqual(11);
});
it("should subtract numbers correctly", () => {
const result = calculator.subtract(1);
expect(result).toEqual(9);
});
});
Test beforeAll
import { Calculator } from "./Calculator";
describe("Calculator", () => {
let calculator: Calculator;
beforeAll(() => {
calculator = new Calculator(10);
});
it("should add numbers correctly", () => {
const result = calculator.add(1);
expect(result).toEqual(11);
});
it("should subtract numbers correctly", () => {
const result = calculator.subtract(1);
expect(result).toEqual(9);
});
});
可以看出,beforeEach每次厕所都会生成新的calculator,而beforeAll只会生成一次calculator。