使用Jest和Class构造函数进行单元测试

时间:2019-03-29 15:58:02

标签: class jestjs

如何测试以下使用set在构造中具有验证的类。

const BaseParameter = class BaseParameter {
  constructor(addr, fullname, value) {
    this.addr = addr;
    this.fullname = fullname;
    this.value = value;
  }

  get value() {
    return this._value;
  }

  set value(value) {
    if (typeof value !== "number") {
      throw new TypeError(`Parameter ${this.fullname} should be a number`);
    }
    this._value = value;
  }
};

我已经尝试过以下这种开玩笑的方法。

test("BaseParameter with invalid constructor", () => {
  expect(new BaseParameter("test", "test fullname", "a")).toThrowError(
    TypeError
  );
});

但是抛出错误,并且传递失败。

1 个答案:

答案 0 :(得分:0)

文档有一个清晰的例子,我只是被卡住了

test("BaseParameter with invalid constructor", () => {
  expect(() => new BaseParameter("test", "test fullname", "a")).toThrowError(
    TypeError
  );
});

https://jestjs.io/docs/en/es6-class-mocks