简体   繁体   English

在 next.js 应用程序中使用 jest 测试 chakra-ui

[英]Testing chakra-ui using jest in a next-js app

I have a login page as我有一个登录页面

import { Flex, Stack, FormControl, FormLabel, Input, FormHelperText } from '@chakra-ui/react'
import type { NextPage } from 'next'

const Login: NextPage = () => {
  return (
    <Flex h="100vh" w="100vw" justifyContent="center" alignItems="center">
      <Stack>
        <FormControl>
          <FormLabel>Email address</FormLabel>
          <Input type='email' />
          <FormHelperText>We'll never share your email.</FormHelperText>
          </FormControl>
      </Stack>
    </Flex>
  );
};

export default Login;

and I want to do a snapshot test for this page using jest.我想使用 jest 对此页面进行快照测试。

I created Login.test.tsx as我将Login.test.tsx创建为

import { render } from '@testing-library/react';

import Login from '../pages/Login';

describe('Login', () => {
    it('renders correctly', () => {
        const { container } = render(<Login />);
        expect(container).toMatchSnapshot();
    });
});

Is this a right approach to test web pages created using chakra-ui?这是测试使用 chakra-ui 创建的 web 个页面的正确方法吗?

What you can do is create a customer render where you'll put all your providers.您可以做的是创建一个客户渲染,您将在其中放置所有提供者。

https://testing-library.com/docs/react-testing-library/setuphttps://testing-library.com/docs/react-testing-library/setup

If you want to do snapshot testing you can do it like that https://testing-library.com/docs/react-testing-library/api/#render如果你想做快照测试,你可以这样做https://testing-library.com/docs/react-testing-library/api/#render

import { render } from '@testing-library/react';

import Login from '../pages/Login';

describe('Login', () => {
    it('renders correctly', () => {
        const { asFragment } = render(<ChakraProvider><Login /></ChakraProvider>);
        expect(asFragment()).toMatchSnapshot();
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM