Jest

Jest is a delightful JavaScript Testing Framework with a focus on simplicity.

How to use

Here we use Jestarrow-up-right alongside with React Testing Libraryarrow-up-right, Test Rendererarrow-up-right, and Redux Mock Storearrow-up-right.

Snapshot Testing Example

Snapshot tests are a very useful tool whenever you want to make sure your UI does not change unexpectedly.

import React from 'react';
import renderer from 'react-test-renderer';
import Link from '../Link.react';

it('renders correctly', () => {
  const tree = renderer
    .create(<Link page="http://www.facebook.com">Facebook</Link>)
    .toJSON();
  expect(tree).toMatchSnapshot();
});

Unit Testing Example

We can select an element with a data-testid properties in the component.

import React from "react";
import Section from "@/page/section";

it("should show Hello World", () => {
  render(<Section />);
  const element = screen.getByTestId(`hello-world`);
  expect(element.textContent).toContain("Hello World");
});

Testing a Component with Redux Store

To test a component with redux stores, we can use redux-mock-store.

Handle Next.js Dynamic Import

If you want to test a component and that component contain a dynamic imports from next/dynamic, we can mock it like this to prevent import errors.

This mocks the dynamic imports to use requireinstead.

To read more about mock functions you can check the Official Jest Documentationarrow-up-right.

Last updated