我使用 jest 进行单元测试。我的代码是
return new Promise((resolve, reject) => {
let request = http.request(options, resp => {
resp.setEncoding('utf-8');
let body = '';
resp.on('data', chunk => {
body += chunk
});
resp.on('error', error => {
body += error;
reject(body, resp);
});
resp.on('end', () => {
this.end(method, resp, url, body, data, opts)
.then(body => {
resolve(body, resp);
})
.catch(err => {
reject(err, resp);
});
});
});
request.end();
我通过jest.fn()
使用模拟变量,但它需要EventEmitter
对象作为request
函数的第二个参数,即 >分别
。
调用 request
函数后,end
事件监听器将被调用。
我想执行 data
和 error
事件监听器,但我不知道该怎么做。
最佳答案
查看官方Mock functions documentation ,尤其是mock-implementations part 。您还可以找到几个教程,例如 Unit Testing Beginners Guide - Part 3 - Mock Http And Files access在网络上。
关于javascript - 如何测试Nodejs请求回调监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48297139/