组件的isStillness属性是比较重要的,也是用来控制组件的静止与否的条件,在这里通过真实模拟render,并通过修改传参的方法,来直接模拟效果,如果传递了true,则组件应该会渲染在 body 中,也就是查找id为content的元素一定可以找到,反之就找不到。
通过这种方法,就可以测试 class Component。 HOC
HOC是如何进行测试的呢,以组件为例,其 props 为:
visible:boolean 类型,控制组件是否静止;
type:string or number,标识组件的类型,可重复,同一类型的静止行为会保持一致;
scrollRest:boolean 类型,控制组件静止时是否缓存滚动位置。
但这些props实际上是经过处理传递给组件的,对于HOC自身来说,只需要保证在未找到context时进行捕获异常即可:
<font size="3">it('throw an error if rendered', () => {