最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在Async.waterfall数组Node.js中编写函数的单元测试

运维笔记admin13浏览0评论

如何在Async.waterfall数组Node.js中编写函数的单元测试

如何在Async.waterfall数组Node.js中编写函数的单元测试

我正在使用Mocha编写测试用例,

这是我的代码的结构 -

var async = require('async');

const uploadHandler = (req, res) => {
  async.waterfall([
    function testdata(callback){
      fetchdetails(callback, req, res);
    },

    function resignDocs(callback) {
      //do something
      console.log(req.body.name);
    }
  ]);
};

app.post('/uploadfile', uploadHandler);
exports.server = app.listen(config.port, () => {
  console.log('info', `Listening for incoming connections on port ${config.port}...`);
});

我正在尝试为函数testdata和函数resignDocs编写测试用例,

我得到了文件 -

var app = require('../app')

(app.js是带有上述代码的文件名)

现在,如果我导出它,app.fetchdetails不允许我访问该功能。它也需要来自reqresuploadHandler

如何在waterfall中编写函数的单元测试。

回答如下:

您可以在uploadHandler之前定义函数并稍后导出它们。通过这样做,您可以在测试中完全控制resignDocsuploadHandler甚至uploadHandler

var async = require('async');

function testdata(callback) {
    fetchdetails(callback, req, res);
}

function resignDocs(callback) {
    //do something
    console.log(req.body.name);
}

const uploadHandler = (req, res) => {
    async.waterfall([
        testdata,
        resignDocs
    ]);
};

app.post('/uploadfile', uploadHandler);

exports.server = app.listen(config.port, () => {
    console.log('info', `Listening for incoming connections on port ${config.port}...`);
});

exports.testdata = testdata;
exports.resignDocs = resignDocs;
exports.uploadHandler = uploadHandler;
发布评论

评论列表(0)

  1. 暂无评论