JestJS测试没有失败错误

时间:2018-01-20 09:28:29

标签: node.js unit-testing typescript jestjs

我正在编写一个打字稿库并使用Jest对其进行测试。这是我的代码:

export function populateTasks(inputFilePath: string): Task[] {
    if (!inputFilePath) {
        throw new Error("Input file path is null: " + inputFilePath);
    }
    const tasks: Task[] = [];
    readFile(inputFilePath, (err, data) => handleInputFile(err, data));
    return tasks;
}

function handleInputFile(err: any, data: any): void {
    if (err) {
        console.log("File not found");
        throw new Error("File not found: " + err);
    }
    console.log(data.toString());
}

这是我的测试:

describe("test", () => {
    test("just a test", () => {
        populateTasks("tasks"); // Invalid file path
    });
});

由于路径无效 handleInputFile 应该抛出错误,测试应该失败。但是,当前它的打印文件未找到到控制台但测试通过了。 如何让测试失败?

1 个答案:

答案 0 :(得分:2)

我认为应该是相反的方法:如果函数被抛出(给定一个无效的路径),那么测试应该通过。

使用.toThrow(error)

test("should throw if path is invalid", () => {
    expect(() => populateTasks("tasks")).toThrow();
});

test("should not throw if path is valid", () => {
    expect(() => populateTasks("../tasks")).not.toThrow();
});