为了避免使用 getBy
方法,可以使用其他方法来查询元素并进行断言。下面是一些可以使用的替代方法和代码示例:
queryBy
方法:import { render, screen } from '@testing-library/react';
test('示例测试', () => {
render( );
const element = screen.queryByTestId('element-id');
expect(element).toBeInTheDocument();
});
findBy
方法(用于异步查询):import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
test('示例测试', async () => {
render( );
const button = screen.getByRole('button');
userEvent.click(button);
const element = await screen.findByText('Example Text');
expect(element).toBeInTheDocument();
});
getAllBy
方法(用于查询多个匹配的元素):import { render, screen } from '@testing-library/react';
test('示例测试', () => {
render( );
const elements = screen.getAllByTestId('element-id');
expect(elements.length).toBe(3);
});
使用这些方法,可以避免使用 getBy
方法,并且更好地测试 React 组件。