如何使用 Jest 测试类中的 private 函数

如下示例代码:

class Card {
  private props = {}
  constructor (query) {
    this.props = this.preprocess(query)
  }
  private preprocess (query) {
    const { name, age } = query;
    return {
          name: toString(name),
          age: toInteger(age)
    }
  }
  public getResult () {
    const {name, age} = this.props;
    // 其他大段逻辑
    ...
    ...
    return something;
  }
}

preprocess 函数用于数值初始化转换,从功能上来说 propspreprocess 确实没有被外部访问的需求,因此设置访问权限为 private

现在想要对 preprocess 测试确保数值转换无遗漏,类型选择无误。

getResult 是唯一的对外方法,但使用 props 只是 getResult 复杂逻辑中的一小部分,如果通过 getResult 覆盖 preprocess 的测试会增加复杂度。

private 成员做单元测试有哪些方法?

阅读 1.6k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题