首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用jest和react- testing -library进行测试时设置组件的本地状态?

如何在使用jest和react- testing -library进行测试时设置组件的本地状态?
EN

Stack Overflow用户
提问于 2019-01-09 14:46:26
回答 1查看 4.2K关注 0票数 5

使用AirBnB的酶,我们可以对一个组件进行setState:

代码语言:javascript
运行
复制
const loginComponent = shallow(<Login />);
loginComponent.setState({ error: true });

我想用react-testing library做同样的事情。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-01-09 22:29:10

你不能用react- that library做到这一点。这是因为RTL希望你像用户一样测试你的组件。

这是什么意思?在现实生活中,您的组件会在发生某些事情后更改状态。可能是用户输入了错误的数据,或者API返回了错误代码。

与其直接更改状态,不如尝试重现更改状态的一组操作。

这种方法比酶提供的方法更难实现,但您的测试将更加健壮。这是因为您将测试整个流程,而不是只关注当特定状态发生时呈现的内容。

最重要的是,你重构了你的代码,改变了状态的工作方式。只要用户与应用程序交互的方式是相同的,RTL测试就不会在意。然而,酶测试将会失败,因为它不再知道如何与组件的内部交互。

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

https://stackoverflow.com/questions/54104547

复制
相关文章

相似问题

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