首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-testing library检查元素是否以特定的排序方式呈现?

如何使用react-testing library检查元素是否以特定的排序方式呈现?
EN

Stack Overflow用户
提问于 2020-04-11 05:21:52
回答 2查看 807关注 0票数 6

通过以用户为中心的方法,我对RTL的理解是,元素的测试排序应该看起来像这样。

代码语言:javascript
复制
const foo = queryByText('foo');
const bar = queryByText('bar');
expect(foo).toBeInTheDocument();
expect(bar).toBeInTheDocument();
expect(foo).toShowBefore(bar); // THIS IS MY PSEUDOCODE

然而,我在RTL语言中找不到.toShowBefore()或等效的函数。测试内容是否按特定顺序显示的正确方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2021-02-10 23:24:54

我不相信React Testing Library有一种惯用的方式来做这件事。但是,如果您能够解析DOM,那么您应该能够获得各种元素的textContent并对其进行断言。

代码语言:javascript
复制
const select = screen.getByTestId('select');
const children = select.children;

expect(children.item(0)?.textContent).toEqual('Interface A');
expect(children.item(1)?.textContent).toEqual('Interface B');
expect(children.item(2)?.textContent).toEqual('Interface C');
票数 1
EN

Stack Overflow用户

发布于 2021-10-20 08:27:01

您可以为每一行分配一个测试id:

代码语言:javascript
复制
<tr data-testid='row'>...</tr> 

然后期望行是按顺序排列的:

代码语言:javascript
复制
const rows = screen.getAllByTestId('row')

expect(within(rows[0]).queryByText('A')).toBeInTheDocument()
expect(within(rows[1]).queryByText('B')).toBeInTheDocument()
expect(within(rows[2]).queryByText('C')).toBeInTheDocument()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61148880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档