【发布时间】:2019-09-13 06:45:28
【问题描述】:
我正在尝试测试以下功能
getVal(process) {
test.on('data', async data => {
try {
for (const val of data) {
await process(val);
console.log('processed')
}} catch (e) {}
});
test.on('error', err => {
console.log('error', err)
});
}
process(payload) {
return new Promise(resolve=>{.....})
};
开玩笑测试: // 在每个之前
mockData =[an array containing 10 values]
onSpy = jest
.fn()
.mockImplementationOnce(async (data, callback) => {
callback(mockData);
})
.mockImplementationOnce((error, callback) => {
callback(mockErr);
});
it('should trigger callback once per message', async () => {
await xyz.getVal(process);
await expect(process).toHaveBeenCalledTimes(10);
});
我希望 process() 被调用 10 次,因为数据被发送了 10 次。但是,当我断言时它只被调用了 2 次,但是当我将 console.log 放入函数本身并运行测试时,它被调用了 10 次。
我不确定出了什么问题。感谢任何帮助。
【问题讨论】:
标签: javascript node.js mocking jestjs event-listener