如何在 Jest 中测试内部商店更新?

时间:2021-02-08 01:42:32

标签: javascript jestjs

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

function example(){
  const store = {}

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

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

1 个答案:

答案 0 :(得分:1)

要使其可测试,您需要导出商店或某些商店访问方法,以便测试可以做出断言。

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

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