如何对Google应用程序脚本进行单元测试?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我正在尝试为Google应用程序脚本设置单元测试,我发现了两个项目:

https://code.google.com/p/gas-unit/https://code.google.com/p/gas unit/

使用未连字符的气垫,它似乎期望脚本嵌入到电子表格中,而我对如何做这个工作有点不清楚。我想测试的脚本是基于web的脚本,而不是电子表格脚本。

使用燃气单元,但我真的很想看到谷歌公司的一些官方测试框架。特别是,我想找到一些方法让这些脚本以一定的频率运行,以发送结果。

提问于
用户回答回答于

我的Google电子表格附加开发和测试编写了另一个名为Gast的测试框架。

Gast是谷歌应用程序脚本的一个与点击兼容的测试框架。它提供了一种简单的方法来验证您编写的GAS程序是否符合预期。

我的目标是获得一个简单的抽头工具,比如磁带(用于javascript)或蝙蝠(用于bash)。

var gastLibUrl = 'https://raw.githubusercontent.com/zixia/gast/master/gas-tap.js'
eval(UrlFetchApp.fetch(gastLibUrl).getContentText())

var test = GasTap.setPrintDriver('Logger') 

function gast() {

  test('do calculation right', function (t) {    
    var i = 3 + 4
    t.equal(i, 7, 'I can calc 3 + 4 = 7')
  })

  test('Spreadsheet exist', function (t) {
    var ss = SpreadsheetApp.openById('1TBJpvlW3WWney4rk1yW5N9bAP8dOMkWxI97dOtco-fc')
    t.ok(ss, 'I can open spreadsheet')
  })

  test.finish()
}
用户回答回答于

需要的只是一个导入QUnit库的脚本项目(例如,带有项目键的脚本项目)。MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j),并具有一个Doget函数,该函数使用URL参数配置QUnit,也可以使用自己的设置配置QUnit,加载运行测试的函数,最后返回QUnit.getHtml()。以下是一个例子:

function doGet( e ) {
  QUnit.urlParams( e.parameter );
  QUnit.config({ title: "Unit tests for my project" });
  QUnit.load( myTests );
  return QUnit.getHtml();
};

// Imports the following functions:
// ok, equal, notEqual, deepEqual, notDeepEqual, strictEqual,
// notStrictEqual, throws, module, test, asyncTest, expect
QUnit.helpers(this);

function myTests() {
  module("dummy module");

  test("dummy test", 1, function() {
    ok(true);
  });
}

然后授权脚本,保存它的版本,发布脚本项目(“部署为web应用程序”),并使用浏览器访问测试URL(“最新代码”)。测试将运行,结果将通过HtmlService显示。可以单击它们来查看它们的断言,但在编写这篇文章

扫码关注云+社区