【发布时间】:2021-08-12 20:26:55
【问题描述】:
我有一个函数在我想用 Jest 测试的 Promise 中调用 https.get。
函数是这样的:
const request = (url) => {
return new Promise((resolve, reject) => {
const chunks = [];
https.get(url, (stream) => {
stream
.on('data', (chunk) => {
if( chunk ) {
chunks.push(JSON.parse(chunk));
}
})
.on('error', (err) => {
reject(err);
})
.on('end', () => {
const data = doSomething(chunks);
resolve(data)
});
});
})
}
我想测试当函数在“结束”时解析并在“错误”时拒绝;
目前我有一个这样的测试,但因为 .on("end") 没有被调用,所以承诺永远不会解决。
describe("request", () => {
it("Should resolve", async (done) => {
const response = await request("my-url");
expect(response).toEqual("some-data")
})
})
如何模拟要调用的 .on("end") 之类的事件并确保 Promise 得到解决?
【问题讨论】:
标签: javascript node.js testing promise jestjs