用 sinon 存根 uuid

Ska*_*leb 8 javascript uuid unit-testing node.js sinon

所以我正在更新对我的项目的依赖,我遇到了一个障碍......

我的单元测试与以下存根完美配合。然而,在最新版本的 UUID 中,这似乎已经打破了。有关如何修复它的任何建议?

这些是代码的简单摘录,用于说明我用来存根 uuid 功能的方法以及我如何在代码中使用 uuid。

import * as uuid from 'uuid'

sinon.stub(uuid, 'v4').returns('some-v4-uuid')
Run Code Online (Sandbox Code Playgroud)
import * as uuid from 'uuid'

const payload = {
  id: uuid.v4()
}
Run Code Online (Sandbox Code Playgroud)

依赖版本

  • “uuid”:“7.0.1”
  • "sinon": "9.0.0"

这是代码

这是测试

kie*_*ans 5

鉴于uuid@7dist 用于Object.defineProperty导出版本,我认为不可能存根。这很烦人,但您可能必须在 uuid 之上放置一个抽象层并存根该函数。

  • 现在只使用“uuid@3.4.0”。存根在此版本上按预期工作,并且稳定且没有漏洞。 (3认同)