我正在努力测试简单的组件(功能性),即通过更改输入值应通过onChange事件更改组件状态下的var。 好像状态和功能封装在组件中一样,testing-library更合适。 说得通? 有什么规则/指南何时使用? 谢谢。
答案 0 :(得分:1)
断言在实现细节(例如组件的状态)上断言是违反React测试库的原理的。
相反,该库建议您编写与用户与您的代码进行交互的方式非常相似的测试。
来自docs:
我们尝试仅公开鼓励您编写与网页使用方式非常相似的测试的方法和实用程序。
对于何时使用哪个规则/准则?
这可能是一个主观话题,并且可能会因您所在的团队而异。
个人而言,我从仅使用酶(特别是shallow
渲染)切换为仅使用React Testing Library,这就是发生的情况:
clicking this button should display that message
,而不是component x should have correct prop y
。我相信Enzyme可以完成React Testing Library的许多工作,但是,我建议至少避免使用shallow
渲染。 It is not considered a good practice
我仍然没有找到用例,其中Enzyme解决了React Testing Library无法解决的问题。但这并不意味着它不存在。这只是意味着RTL现在很适合我。