在FaceBook内部,就是使用jest测试RN程序的,其特有的snapshot功能,非常适用于RN应用测试。
Setup
使用react-native init
生成的项目,默认已经集成了jest。如果没有,可以按下面的step安装和集成jest。
修改package.json
:
|
|
然后运行npm install
安装。
添加测试
比如现在我们想给已经存在组件Intro.js
添加测试。
首先,在项目根目录创建__tests__
(如果没有的话),然后添加测试文件Intro-test.js
:
|
|
运行测试
在根目录运行npm test
。将会生成一个Intro
组件的快照__tests__/__snapshots__/Intro-test.js.snap
。
如果代码没有问题,将会有下面的输出:
|
|
下次再运行测试的时候,新生成的快照将被用来和之前的快照做比较(以此来判断组件是否被正确渲染)。
快照文件应该和代码一起被提交,当快照测试失败时,开发人员需要根据失败的原因,来判断是因为组件更新还是代码错误导致的。如果是前者,则需要使用jest -u
来更新快照。
更多关于jest
测试脚本的编写和分析,将会陆续更新。