This testing framework provides a simple and flexible way to write and execute tests for JavaScript code. It allows developers to define test suites, individual tests, and expectations using intuitive syntax.
npm install @sil/test
Define Test Suites: Use the describe function to group related tests into suites.
describe('Suite Name', () => {
// Define tests here using the `it` function
});
Define Tests: Inside each suite, use the it function to specify individual tests.
describe('Array Tests', () => {
it('should return true for an empty array', () => {
expect([]).toHaveLength(0);
});
});
Expectations: Use the expect function to make assertions about values.
describe('String Tests', () => {
it('should check if a string is defined', () => {
expect('Hello').toBeDefined();
});
});
run()
The expect function provides a variety of assertion methods to validate different types of values:
-
toEqual(expected)
: Check if two values are equal. -
toBe(expected)
: Check if two values are strictly equal. -
toHaveBeenCalled()
: Check if a mock function has been called. -
toBeDefined()
: Check if a value is defined. -
toBeTruthy()
: Check if a value is truthy. -
toBeFalsy()
: Check if a value is falsy. -
toBeGreaterThan(expected)
: Check if a value is greater than the expected value. -
toBeLessThan(expected)
: Check if a value is less than the expected value. -
toBeNull()
: Check if a value is null. -
toBeUndefined()
: Check if a value is undefined. -
toBeNaN()
: Check if a value is NaN. -
toContain(expected)
: Check if an array or string contains a specific element/value. -
toContainEqual(expected)
: Check if an array contains an element that matches the expected value. -
toMatchObject(expected)
: Check if an object contains properties matching those of the expected object. -
toStrictEqual(expected)
: Check if two values are strictly equal. -
toHaveLength(expected)
: Check if the length of an array or string matches the expected length.
describe('Math Tests', () => {
it('should check if 2 + 2 equals 4', () => {
expect(2 + 2).toEqual(4);
});
});