Я пытаюсь использовать Jest для модульного тестирования и не нашел, как проверить, выдает ли класс ошибку при отсутствии параметров.
Это ScheduleJob. js
class ScheduleJob {
constructor({ id, description, maxConclusionDate, estimateTime }) {
if (id === undefined) {
throw new Error("id is undefined");
}
if (description === undefined) {
throw new Error("description is undefined");
}
if (maxConclusionDate === undefined) {
throw new Error("maxConclusionDate is undefined");
}
if (estimateTime === undefined) {
throw new Error("estimateTime is undefined");
}
this.id = id;
this.description = description;
this.maxConclusionDate = maxConclusionDate;
this.estimateTime = estimateTime;
}
}
module.exports = ScheduleJob;
Это ScheduleJob.test. js
const ScheduleJob = require("./ScheduleJob.js");
describe("./ScheduleJob parameters validation", () => {
it("creates a instance with all parameters", () => {
const mockJob = {
id: 1,
description: "Importação de arquivos de fundos",
maxConclusionDate: "2019-11-10 12:00:00",
estimateTime: "2 horas",
};
const mockInstance = new ScheduleJob(mockJob);
expect(mockInstance.id).toBe(1);
expect(mockInstance.description).toBe("Importação de arquivos de fundos");
expect(mockInstance.maxConclusionDate).toBe("2019-11-10 12:00:00");
expect(mockInstance.estimateTime).toBe("2 horas");
});
it("Throws error when missing params", () => {
const mockJob = {
description: "Importação de arquivos de fundos",
maxConclusionDate: "2019-11-10 12:00:00",
estimateTime: "2 horas",
};
expect(new ScheduleJob(mockJob)).toThrow(Error);
});
});
Возможно, мне нужно издеваться над этим классом и создать объект с ошибками, я видел несколько сообщений с этим ответом, но ошибки в эти случаи выбрасываются функциями, а не самим конструктором