我正在使用 Testing Library 为 React 应用程序编写一些测试。我想检查是否出现了一些文本,但我需要检查它是否出现在特定位置,因为我知道它已经出现在其他地方。
查询的测试库文档 说 getByText
查询采用 container
参数,我猜你可以在该容器内搜索。我尝试这样做,按照文档中指定的顺序使用 container
和 text
参数:
const container = getByTestId('my-test-id');
expect(getByText(container, 'some text')).toBeTruthy();
我得到一个错误: matcher.test is not a function
。
如果我把参数反过来:
const container = getByTestId('my-test-id');
expect(getByText('some text', container)).toBeTruthy();
我得到一个不同的错误: Found multiple elements with the text: some text
这意味着它不在指定容器内搜索。
我想我不明白 getByText
是如何工作的。我究竟做错了什么?
原文由 Hives 发布,翻译遵循 CC BY-SA 4.0 许可协议
最好使用
within
来处理这类事情: