我使用以下代码使用node-mocks-http模拟HTTP请求和响应对象;
var request = httpMocks.createRequest({
method: 'POST',
url: '/test',
body : "some body",
});
var response = httpMocks.createResponse({
eventEmitter: require('events').EventEmitter,
req : request
});
response.on('end', function() {
console.log(response._getData())
expect(response._getData()).toEqual("kill me");
expect(response.statusCode ).toEqual(200);
expect(response._isEndCalled()).toBe(true);
done();
});
handleReqRes(request,response);
但它不会触发任何请求事件。
function handleReqRes(req,res){
req.on("data", chunk => {
console.log(chunk);
});
req.on("end", () => {
console.log("end");
});
res.end("kill me");
}
因此,对于以上呼叫它只是记录"杀了我"。如果它可以与其他模拟库一起使用,我可以切换到它。这很好。
答案 0 :(得分:0)
我找到了解决方案。我实际上需要在结束时自己发出事件
request.emit('data', Buffer.from(data));
request.emit('end');
我将更新原始插件以获得执行此操作的方法。