我正在使用Testing Library为一个React应用编写一些测试。我想要检查是否出现了某些文本内容,但我需要确认它出现在特定的位置,因为我已经知道它出现在其他地方。
Testing Library查询文档中指出getByText
查询接收一个container
参数,我猜想这个参数可以让你在该容器内搜索。我按照文档中指定的顺序尝试了一下,并使用container
和text
参数:
const container = getByTestId('my-test-id');
expect(getByText(container, 'some text')).toBeTruthy();
我得到一个错误:matcher.test不是一个函数
。
如果我反过来放置参数:
const container = getByTestId('my-test-id');
expect(getByText('some text', container)).toBeTruthy();
我遇到了一个不同的错误:找到多个文本为“some text”的元素
这意味着它没有在指定的容器内进行搜索。
我想我没有理解getByText
的工作原理。我做错了什么?
expect(container.textContent).toMatch('some text')
获取文本。 - taystack