【问题标题】:How to test class constructor in Jest如何在 Jest 中测试类构造函数
【发布时间】:2018-09-27 21:37:32
【问题描述】:

假设我有一个类似以下的课程:

class SomeClass {
  constructor(a, b) {
    this.a = a;
    this.b = b;
  }
}

如何通过 Jest 测试构造函数是否以正确的方式初始化?说...this.a = athis.b = b,反之亦然?

我知道我可以执行toBeCalledWith,但这不会让我检查构造函数的逻辑。我也在考虑制作mockImplementation,但在这种情况下,这似乎毫无意义,因为我将重写逻辑,或者我可能没有意识到创建模拟的所有细微差别

【问题讨论】:

    标签: javascript unit-testing jestjs


    【解决方案1】:

    只需创建一个对象的实例并直接检查它。由于它将它们设置为this,因此它们本质上是公共值:

    it('works', () => {
      const obj = new SomeClass(1, 2);
      expect(obj.a).toBe(1);
      expect(obj.b).toBe(2);
    });
    

    【讨论】:

      【解决方案2】:

      您可以在初始化类后简单地检查实例属性。基本上一样可以测试任何函数的副作用。

      const a = Symbol();
      const b = Symbol();    
      const classInstance = new SomeClass(a, b);
      expect(classInstance.a).toBe(a);
      expect(classInstance.b).toBe(b);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 2022-10-20
        • 2017-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多