javascript - POST 请求中的测试和 stub 参数

标签 javascript node.js unit-testing mocha.js sinon

伙计们,我如何在 POST 请求中 stub 参数,例如这里是函数的一部分

 gridCalculator : function(req,res){
        // calculation logic
        var options=[];
        options.dateFirstLicensed = req.param('DateFirstLicensed');
        options.dateFirstInsured = req.param('DateFirstInsured');
        options.claimList = req.param('ClaimList');
        options.suspenList = req.param('SuspenList');

...etc

如果我这样做

  it('grid Calculate', function (done) {
    var req = {
     'DateFirstLicensed' : "01-01-2010",
   'DateFirstInsured': "01-01-2011",
   'ClaimList': ['05-03-2012'],
   'SuspenList': [{'StartDate':'05-03-2012','EndDate':'05-05-2012' }]
    };
    gridCalculator.gridCalculator(req,function (err, result) {
      result.should.exist;
      done();
    });
  });

我收到错误,因为我只是传递一个对象而不是 POST 请求

 TypeError: req.param is not a function

最佳答案

我想到了两个选项(可能还有更多):

选项 1:自己定义 param 函数:

  it('grid Calculate', function (done) {
    var params = function(param) {
      switch (param) {
        case 'DateFirstLicensed':
          return "01-01-2010";
        case 'DateFirstInsured':
        ... //do the same for all params 
      }
    };
    var req = {
     param: params
    };
    gridCalculator.gridCalculator(req,function (err, result) {
      result.should.exist;
      done();
    });
  });

选项 2:使用类似 supertest 的工具创建对服务器端点的调用。

关于javascript - POST 请求中的测试和 stub 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813702/

相关文章:

javascript - 我在 Jquery 中操作 'this' 有什么问题吗?

javascript - 动态更改 Bootstrap 进度条

javascript - 如何将json值插入到对象中

android - 如何在 Mockito3.x 中使用 PowerMock?

c# - 使用 EPPlus 的单元测试类

javascript - 执行无误后不调用回调

http - NodeJS 中的基本静态文件服务器

node.js - Apache Cordova 在 Yosemite 上安装失败

node.js - 如何按照存储库模式从 nodeJS 应用程序中的服务和存储库中抛出错误

unit-testing - 如何在 Guile 中构建单元测试,输出到 TAP 标准?