pipeData.on('finish', ()=>{res.end()} 的 Nodejs 测试用例

Nodejs test case for pipeData.on('finish', ()=>{res.end()}

我正在使用以下代码读取 base64 输入字符串:

//NPM package
var base64 = require('base64-stream');
var memorystreams = require('memory-streams');

function getMyData(base64DataStr, res) {

    let base64DataStr=X10;
    let pipeData;

    pipeData= new memorystreams.ReadableStream(base64DataStr);

    pipeData.on('finish', ()=>{
        res.end(); --Sending the response
      });
}

代码运行良好,但我需要使用 NPM chai 和 Mocha 设计单元测试用例,所以你能告诉我如何编写测试用例来测试上述场景吗?

提前致谢。

到达您想去的地方的最简单方法是将 getMyData 变成一个异步方法,returns 一个回调

function getMyData(base64DataStr, cb) {

    let base64DataStr=X10;
    let pipeData;

    pipeData= new memorystreams.ReadableStream(base64DataStr);

    pipeData.on('finish', ()=>{
        cb('send back some data');
      });
}

然后在您有权访问响应的调用路由中处理响应,所以(我不确定您为什么传入 base64DataStr 只是为了重新分配它):

app.get('/foo', (req, res) =>{
  getMyData('fo', _out => res.end(_out))
})