shallow 和 mount的区别
来源:5-4 价格题目列表测试分析和编写
ywang04
2020-04-09
老师 请问如果有个组件是无状态的 但是引用了一个子组件 这个时候是不是不能用shallow 因为shallow不会渲染子组件 但是我的test case需要测试该子组件的状态 那么是不是只能用mount 还是有其他选择? 另外我看到PriceList里也有Ionicon这样的子组件 为什么可以用shallow进行渲染呢? 谢谢
写回答
1回答
-
张轩
2020-04-10
同学你好 第一个问题 假如你要测试子组件内部的状态,你说的没错,选择 mount 方法。
第二个问题 PriceList 组件使用 shallow 渲染,不会把 子组件全部用 DOM 渲染出来,但是会渲染 React vnode tree,还是能够拿到 Ionicon 这样的节点的,可以进行一些简单的断言,比如有多少个子组件之类。
简单来说:shallow对组件的渲染结果不是html的dom树,而是react树,如果你chrome装了react devtool插件,他的渲染结果就是react devtool tab下查看的组件结构,而mount函数的结果是element tab下查看的结果。也就是真正的 DOM 节点。
032020-04-12
相似问题