我有一个创建md5的函数,并且我已经创建了一个检查其行为的测试,脚本可以工作。现在我需要创建一个测试来检查当createHash()
或createReadStream()
失败时承诺是否被拒绝。
如何测试这种情况,有什么最佳实践?如果您能发布一个示例,我将不胜感激!
export const md5 = (path: string) =>
new Promise<string>((resolve, reject) => {
const hash = createHash("md5");
const rs = createReadStream(path);
rs.on("error", reject);
rs.on("data", chunk => hash.update(chunk));
rs.on("end", () => resolve(hash.digest("hex")));
});
describe("md5", () => {
const fileName = `${TEST_DIR}/file1.txt`;
beforeAll(() => createFile(fileName));
afterAll(() => removeFile(TEST_DIR));
it("should hash md5 a file", () => {
md5(fileName).then((hash: string) => {
assert.strictEqual(hash, "4738e449ab0ae7c25505aab6e88750da");
});
});
});