React 快照测试是一种用于确保 UI 组件渲染输出一致性的测试方法。它通过将组件的渲染输出保存为一个“快照”,然后在后续测试中对比新旧快照,来检测组件是否发生了不期望的变化。
react-test-renderer
是 React 官方提供的一个库,用于渲染 React 组件并生成快照。而 @testing-library/react
是一个更现代、更用户友好的测试库,它提供了更接近用户实际使用方式的测试方法。
@testing-library/react
提供的 screen.getBy*
系列方法,直接对组件的特定部分进行断言。以下是一个使用 react-test-renderer
进行快照测试的简单示例:
import React from 'react';
import renderer from 'react-test-renderer';
import MyComponent from './MyComponent';
test('renders correctly', () => {
const tree = renderer.create(<MyComponent />).toJSON();
expect(tree).toMatchSnapshot();
});
对于更复杂的场景,建议使用 @testing-library/react
进行测试,以下是一个示例:
import { render, screen } from '@testing-library/react';
import MyComponent from './MyComponent';
test('renders correctly', () => {
render(<MyComponent />);
const linkElement = screen.getByText(/hello/i);
expect(linkElement).toBeInTheDocument();
});
更多关于 react-test-renderer
和 @testing-library/react
的信息和示例代码,可以参考它们的官方文档或相关教程。
领取专属 10元无门槛券
手把手带您无忧上云