首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >react-testing-library - Screen vs Render queries

react-testing-library - Screen vs Render queries
EN

Stack Overflow用户
提问于 2020-04-28 22:17:29
回答 2查看 10.5K关注 0票数 30

有两种使用react-testing-library查询的方法。

您可以使用render方法返回的查询:

或者,您可以使用screen对象:

但是在文档中没有说明哪一个是最好的选择以及为什么。

有没有人能开导我?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-07 14:48:18

react-testing-library作者肯特·C·多兹本人推荐的最新选择是使用screen

使用screen的好处是,在添加/移除所需的查询时,不再需要保持渲染调用destructure为最新。你只需要输入screen。让你的编辑器的魔力自动补全来处理剩下的事情。

唯一的例外是如果你正在设置容器或baseElement,你可能应该避免这样做(老实说,我想不出这些选项的合法用例了,它们现在只存在于历史原因)。

来源: https://kentcdodds.com/blog/common-mistakes-with-react-testing-library#not-using-screen

票数 39
EN

Stack Overflow用户

发布于 2020-04-28 23:13:33

screen是由@testing-library/dom提供的,这也是@testing-library/react的基础。当使用screen方法时,它们将在html元素中查询,如文档中所述

因为查询整个屏幕非常常见,所以DOM测试库还会导出一个屏幕对象,其中包含预先绑定到document.body的每个查询

render()只存在于@testing-library/react中。它返回一个类似于screen的对象,默认情况下也将查询绑定到。默认情况下,没有什么不同,但您可以通过传入选项来自定义它的行为。

例如,您可以指定要在其中查询的元素以外的元素,甚至可以提供自定义查询方法。

为了回答您关于哪个是最好的问题,我会说使用render()更好,因为options使它更灵活,但引用文档

您通常不需要指定选项

尽管如此,我还是倾向于使用render()提供的方法,因为如果您决定添加选项,就不需要记住更改所有的查询。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61482418

复制
相关文章

相似问题

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