【问题标题】:unitary testing in doGet(request) - Google Apps ScriptdoGet(request) 中的单一测试 - Google Apps 脚本
【发布时间】:2017-05-17 14:47:07
【问题描述】:

我正在开发一个简单的谷歌脚本并将其发布为网络应用程序。

我的方法开始如下:

function doGet(request) {

  var start = request.parameters.start;
  var end = request.parameters.end;

  if (isNaN(Number(start)))
    return generateError (3, start);
  if (isNaN(Number(end)))
    return generateError (4, end);

 /*
  * ...
  * lot of irrelevant stuff for current question
  * ...
  */

}

我想添加一些基本的单一测试。我已经为辅助功能做好了准备,但我不确定如何使用 doGet (request) 功能。

目前我正在使用以下方法:

function testDoGet(){
  var queryString = "?start=1&end=5";
  var url = ScriptApp.getService().getUrl() + queryString;
  var options =
      {
        "method"  : "GET",   
        "followRedirects" : true,
        "muteHttpExceptions": true
      };

  Logger.log(url);
  var result = UrlFetchApp.fetch(url, options);
  Logger.log(result);

但这不允许我调试,而且它要求代码已经发布(但没有执行最新的代码),我会对收到的验证参数感兴趣(例如)

有什么方法可以模拟这个吗?

【问题讨论】:

    标签: unit-testing google-apps-script


    【解决方案1】:

    我猜你可以直接调用它并像实际的 HTTP 调用那样提供参数,例如

    function testDoGet() {
      var requestMock = {
        parameters: {
          start: 1,
          end: 5
        }
      };
      Logger.log(requestMock);
      var result = doGet(requestMock);
      Logger.log(result);
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-14
      • 2015-05-29
      • 2016-12-14
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多