如何在 Jest 中测试类构造函数

新手上路,请多包涵

假设我有一个类如下:

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

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

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

原文由 Le garcon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 591
2 个回答

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

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

原文由 samanime 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以在初始化类后简单地检查实例属性。基本上与您可以测试任何功能的副作用相同。

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

原文由 Liviath 发布,翻译遵循 CC BY-SA 3.0 许可协议

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