These are Jest lifecycle hooks for test setup and cleanup. beforeEach/afterEach run before/after each test. beforeAll/afterAll run once before/after all tests in a describe block. Use them to set up test data, mock functions, or clean up resources.
Lifecycle Hooks:
beforeAll(): Once before all tests in blockafterAll(): Once after all tests completebeforeEach(): Before every testafterEach(): After every testCommon Use Cases:
beforeEach:
afterEach:
beforeAll:
afterAll:
describe('User service', () => {
let userService;
let mockDatabase;
// Run once before all tests
beforeAll(() => {
console.log('Setting up test suite');
mockDatabase = createMockDatabase();
});
// Run before each test
beforeEach(() => {
userService = new UserService(mockDatabase);
// Reset any mock state
jest.clearAllMocks();
});
// Run after each test
afterEach(() => {
// Clean up any side effects
userService = null;
});
// Run once after all tests
afterAll(() => {
console.log('Cleaning up test suite');
mockDatabase.close();
});
test('creates user', () => {
const user = userService.create({ name: 'Alice' });
expect(user).toHaveProperty('id');
});
test('finds user by id', () => {
const user = userService.findById(1);
expect(user).toBeDefined();
});
});