Enzyme主要包括三个测试:
① shallow:是官方测试工具库 react-addons-test-utils 中 shallow rendering 的封装。是将一个组件渲染成虚拟DOM对象的“浅渲染”。这种渲染不会涉及子组件,不需要DOM,生成的是虚拟DOM,所以渲染最快,然而它并不能测试子组件的相关代码。
② mount:用于将React组件加载为真实DOM节点,它会生成完整的DOM节点,所以可以测试子组件。但是要依赖一个用jsdom模拟的浏览器环境。
③ render:会根据react组件得到一个静态HTML文本结果,借助一个第三方的HTML解析库Cheerio去生成一个类似于mount和shallow得到的封装对象。它会将react组件渲染为html文本,然后在内部通过Cheerio自动生成一个Cheerio对象。
shallow是最快,但是shallow有局限性,render的效率是mount的两倍。shallow和mount因为都是dom对象的缘故,所以都是可以模拟交互的,而render是不能的。