代码之家  ›  专栏  ›  技术社区  ›  Morpheus

typescript中私有方法的测试

  •  0
  • Morpheus  · 技术社区  · 4 年前

    假设我有以下typescript类:

    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 并尝试测试它们,所以请耐心等待:)

    0 回复  |  直到 4 年前
        1
  •  2
  •   OliverRadini    4 年前

    我认为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
    
    推荐文章