测试
Kerros Provider 是普通 React 组件。测试时直接渲染一个新的 Provider,每个用例都会得到独立状态,不需要手动重置全局 Store。
下面使用 Vitest 和 Testing Library 测试一个计数器。
准备测试组件
测试组件更新
下一个测试重新渲染 CounterProvider 时,count 会重新从 0 开始。
测试 Provider props
Provider props 会传给 Store Hook,可以通过 rerender 验证 props 更新:
测试 Provider 外调用
Store Hook 必须在对应 Provider 内使用。公共 Store 包最好固定测试这个错误边界:
测试 selector 隔离
只有在订阅行为本身是测试目标时,才需要统计渲染次数。创建两个字段,让组件只订阅其中一个,然后更新另一个字段:
只要 selector 返回的顶层字段引用没有变化,未选择字段的更新就不应让消费者重新渲染。
如果你在维护一个基于 Kerros 的公共 Store 包,建议再覆盖 Strict Mode、消费者卸载、服务端渲染和多 Provider 实例。