【问题标题】:ES2020 private class methods/fields and testingES2020 私有类方法/字段和测试
【发布时间】:2020-08-03 05:32:15
【问题描述】:

您可能知道,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

您将如何继续处理这个问题?

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

【问题讨论】:

    标签: testing methods jestjs private ecmascript-2020


    【解决方案1】:

    在调试我的 UT 时,我看到当 XXX 是他们在班级中出现的“索引”时,他们的名字前缀为 __private_XXX_

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-26
      • 2013-09-01
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2019-01-23
      • 2011-08-05
      相关资源
      最近更新 更多