testing - 每次测试后用玩笑重置 Redux 存储
问题描述
我正在使用 Jest 来测试我的 Redux 操作,有时会发生测试与其他测试所做的冲突。例如,我测试了一个名为add a user的操作,因此它将商店的长度增加到 1,然后我测试了另一个名为add and delete a user 的操作,它希望商店在处理后为空,但商店仍然有一个自第一次测试以来就存在的用户。
每次测试后是否有一种可接受的方式来重置 Redux 存储以重新开始?
解决方案
我的建议是为每个测试创建一个新的 Redux 存储——而不是重置它。这样,您的中间件等也以干净的状态开始。
您可以在 Redux Toolkit Tests 中使用setupApiStore帮助程序之类的东西。
简化版本看起来像
function setupTestStore() {
const refObj = {}
beforeEach(() => {
const store = configureStore({ reducer })
refObj.store = store
refObj.Wrapper = function Wrapper({ children }: any) {
return <Provider store={store}>{children}</Provider>
}
})
return refObj
}
在你的测试中
const storeRef = setupTestStore()
it('tests something', () => {
render(<MyComponent />, { wrapper: storeRef.wrapper }
}
it('tests something with another store', () => {
render(<MyComponent2 />, { wrapper: storeRef.wrapper }
}
推荐阅读
- javascript - 用主页上的动态精选帖子内容替换静态内容 - Blogger Blogspot
- css - 我无法处理绝对位置的 z-index
- python - socket.recvmsg 忽略 ancbufsize,辅助数据
- reactjs - 反应选择容器选项宽度
- java - 如何使用 S4 Cloud SDK Connectivity 访问 RabbitMQ 背后的目标服务
- java - 无法在模拟 SNMP4J 代理中注册 OID
- javascript - 如何随机填充矩阵的行?
- hyperledger-fabric - Hyperledger Explorer 未在 8080 上启动(发现问题)
- unity3d - Vuforia 加载白色矩形而不是视频
- julia - 具有不同大小向量的 Julia 数组