测试typescript中的私有方法

问题描述 投票:0回答:1

比方说,我有以下类型的脚本类。

class MyComponent {
  private something: number;

  constructor () {
    this.something = 0
    this.incrementSomething()
  }

  private incrementSomething () : number {
    return this.something++
  }
}

export default MyComponent

而我的目标是测试它 jest但我有更多的问题,而不是答案。

  • 这是一个糟糕的设计模式吗?
  • 私有方法是否应该被测试?(网络上有很多意见,很难决定)
  • 我应该忽略 jest coverage 在这种设置下,它将报告类为未测试?
  • 我是否应该创建一个公共方法,然后在其中调用我的私有方法?

这是我第一次尝试使用 private 中的方法 typescript 并尝试测试它们,所以请耐心等待:)

javascript typescript jest test-coverage
1个回答
2
投票

我不认为SO是解决这种问题的理想场所,因为你问的大部分是基于意见的。然而,你可以断言这个对象是 any 为了做一些测试。

class MyComponent {
  private something: number;

  constructor () {
    this.something = 0
    this.incrementSomething()
  }

  private incrementSomething () : number {
    return this.something++
  }
}

const thingIWantToTest = new MyComponent();

console.log((thingIWantToTest as any).something); // works
console.log(thingIWantToTest.something);          // type error
© www.soinside.com 2019 - 2024. All rights reserved.