在create-react-app中,screen.getByText()
和getByText()
都是用于在测试中查找特定文本内容的方法。
screen.getByText()
是@testing-library/react
库中提供的方法,用于在渲染的组件中查找包含指定文本的元素。它返回第一个匹配到的元素,如果找不到匹配的元素,会抛出错误。
getByText()
是@testing-library/dom
库中提供的方法,用于在DOM节点中查找包含指定文本的元素。它返回第一个匹配到的元素,如果找不到匹配的元素,会抛出错误。
这两个方法的使用方式和参数都相似,可以接受一个字符串作为参数,表示要查找的文本内容。它们会遍历组件或DOM节点的子节点,查找包含指定文本的元素。
这两个方法在React组件的测试中非常有用。通过使用它们,我们可以方便地查找并断言组件中是否包含了特定的文本内容,从而验证组件的正确性。
以下是一些使用示例:
import { render, screen } from '@testing-library/react';
import MyComponent from './MyComponent';
test('MyComponent should render "Hello, World!"', () => {
render(<MyComponent />);
const element = screen.getByText('Hello, World!');
expect(element).toBeInTheDocument();
});
test('MyComponent should not render "Goodbye"', () => {
render(<MyComponent />);
expect(() => {
screen.getByText('Goodbye');
}).toThrow();
});
在上面的示例中,我们使用screen.getByText()
方法来查找MyComponent
组件中是否包含了特定的文本内容。如果找到了匹配的元素,我们可以进行进一步的断言验证;如果找不到匹配的元素,我们可以使用toThrow()
方法来验证是否抛出了错误。
推荐的腾讯云相关产品和产品介绍链接地址:
以上是对screen.getByText()
和getByText()
的完善且全面的答案,涵盖了它们的概念、用法、推荐的腾讯云相关产品和产品介绍链接地址。
领取专属 10元无门槛券
手把手带您无忧上云