温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Jest测试React Hooks的useCallback

发布时间:2024-08-27 20:09:35 来源:亿速云 阅读:79 作者:小樊 栏目:编程语言

useCallback 是 React Hooks 中的一个功能,它用于将函数包装在一个记忆化的容器中,以避免不必要的重新渲染

  1. 首先,确保已安装所需的依赖项:
npm install --save react
npm install --save-dev jest @testing-library/react @testing-library/jest-dom
  1. 创建一个名为 MyComponent.js 的文件,其中包含使用 useCallback 的组件:
import React, { useCallback } from 'react';

const MyComponent = ({ onClick }) => {
  const handleClick = useCallback(() => {
    onClick('Hello, World!');
  }, [onClick]);

  return (
   <button onClick={handleClick}>
      Click me
    </button>
  );
};

export default MyComponent;
  1. 创建一个名为 MyComponent.test.js 的测试文件:
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import MyComponent from './MyComponent';

describe('MyComponent', () => {
  it('should call onClick with "Hello, World!" when button is clicked', () => {
    const onClick = jest.fn();
    const { getByText } = render(<MyComponent onClick={onClick} />);

    fireEvent.click(getByText('Click me'));

    expect(onClick).toHaveBeenCalledWith('Hello, World!');
  });
});
  1. package.json 中添加测试脚本:
{
  "scripts": {
    "test": "jest"
  }
}
  1. 运行测试:
npm test

这个测试用例会检查当按钮被点击时,onClick 函数是否被调用,并传递了正确的参数。注意,我们使用了 @testing-library/react@testing-library/jest-dom 库来简化测试过程。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI