首页 > 解决方案 > 如何在 Jest 中测试内部商店更新?

问题描述

是否可以在 Jest 中测试对象更新,该对象封装在闭包中?我有一个像这样的简单功能:

function example(){
  const store = {}

  return {
    updateStore(key, value){
      store[key] = value
    }
  }
}

如果我需要测试updateStore,我需要检查商店是否已更新,但我无法访问测试中的商店。嘲笑这种情况的解决方案吗?

标签: javascriptjestjs

解决方案


为了使其可测试,您需要导出存储或一些存储访问方法,以便测试可以做出断言。

如果您正在编写自己的商店,就像您在这里一样,那么这是一个好主意。

如果您正在使用第三方商店实现,例如 Redux,您不应该测试商店——您应该编写模拟商店 API 的测试并断言您的应用代码向商店发送正确的消息。


推荐阅读