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

时间:2018-03-09 00:43:52

标签: node.js npm base64 mocha chai

我使用下面的代码来读取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来设计单元测试用例,那么请您告诉我如何编写测试用例以测试上述场景?

提前致谢。

1 个答案:

答案 0 :(得分:0)

获取目标的最简单方法是将getMyData转换为返回回调的异步方法

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))
})