1

您可能知道,ES2020引入了私有类方法和字段,类似于我们目前在 typescript 中的内容(尽管关键字不同... TS -> private | JS -> #methodName 或 #fieldName)。

链接到 RC(第 3 阶段)https ://github.com/tc39/proposal-private-methods

我们目前可以将它与babel 插件一起使用: https ://babeljs.io/docs/en/babel-plugin-proposal-private-methods

技术栈:

我使用 Jest 和 Enzyme 进行单元测试。

问题:

我面临的问题是,每当我使用这些字段或方法导入一个类时,我只是尝试引用调用它们的 wrapper.instance() 来测试它们,我可以看到私有方法在实例中不可见(这是正确的,因为它是私有的)。

一个示例错误:#someMethod is undefined

你将如何继续接近这个?

您会跳过测试私有方法还是有解决方案?

4

1 回答 1

1

在调试我的 UT 时,我看到他们的名字有一个前缀,__private_XXX_当 XXX 是他们在课堂上出现的“索引”时。

因此您可以使用访问#someMethod__private_XXX_someMethod但这需要您检查“索引”并在每次类更改索引时更新它。

于 2020-06-28T11:06:13.003 回答