我正在编写一个打字稿库并使用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 应该抛出错误,测试应该失败。但是,当前它的打印文件未找到到控制台但测试通过了。 如何让测试失败?
答案 0 :(得分:2)
我认为应该是相反的方法:如果函数被抛出(给定一个无效的路径),那么测试应该通过。
test("should throw if path is invalid", () => {
expect(() => populateTasks("tasks")).toThrow();
});
test("should not throw if path is valid", () => {
expect(() => populateTasks("../tasks")).not.toThrow();
});