Introduction to jest-circus
Jest Circus is a powerful JavaScript testing framework designed to provide a more robust and flexible testing approach. It comes with a variety of APIs that allow developers to create dynamic and complex test suites. In this guide, we will explore the jest-circus APIs and provide useful examples to help you understand how to use them effectively.
API Examples
describe
The describe
function is used to group related tests together. It helps in organizing test cases and can also contain nested describe
blocks.
describe('Math operations', () => {
// Test cases
});
test
The test
function is used to define a single test case. It accepts a string description and a function containing the test code.
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3);
});
beforeEach
The beforeEach
function is executed before each test in a describe
block. This is useful for setting up the test environment.
beforeEach(() => {
// Setup code
});
afterEach
The afterEach
function runs after each test in a describe
block. It is typically used to clean up or reset the environment.
afterEach(() => {
// Teardown code
});
beforeAll
The beforeAll
function is called once before all the tests in a describe
block. It is used for expensive setup operations that need to run only once.
beforeAll(() => {
// One-time setup code
});
afterAll
The afterAll
function is executed once after all the tests in a describe
block have completed. It is used for cleanup tasks that should only happen once.
afterAll(() => {
// One-time cleanup code
});
expect
The expect
function is used to create assertions. It takes a value and returns a matcher object with various methods to assert different conditions.
expect(value).toEqual(expected);
expect(value).toBeTruthy();
expect(array).toContain(item);
Application Example
Below is an application example that uses the described APIs for testing a simple Calculator class.
class Calculator {
add(a, b) {
return a + b;
}
subtract(a, b) {
return a - b;
}
multiply(a, b) {
return a * b;
}
divide(a, b) {
if (b === 0) {
throw new Error('Cannot divide by zero');
}
return a / b;
}
}
describe('Calculator', () => {
let calculator;
beforeAll(() => {
calculator = new Calculator();
});
test('add method should return correct sum', () => {
expect(calculator.add(1, 2)).toBe(3);
});
test('subtract method should return correct difference', () => {
expect(calculator.subtract(5, 3)).toBe(2);
});
test('multiply method should return correct product', () => {
expect(calculator.multiply(2, 3)).toBe(6);
});
test('divide method should return correct quotient', () => {
expect(calculator.divide(6, 3)).toBe(2);
});
test('divide method should throw error when dividing by zero', () => {
expect(() => calculator.divide(6, 0)).toThrow('Cannot divide by zero');
});
});
With these examples, you should be able to create your own test cases using jest-circus effectively.
Hash: 6bcc1739305e648a2c4d75552397bfe787aeb84ddaa8052f001e74956aeb282e