Google Apps 脚本支持触发器 ( Triggers ),也称为激活器,它传递事件 ( Events ) 来触发函数以触发/激活函数。不幸的是,开发环境不允许在不传递参数的情况下测试函数,因此无法以这种方式模拟事件。尝试时,会导致如下错误:
ReferenceError: 'e' is not defined.
可以将事件视为可选参数,并使用“是否有更好的方法在 Javascript 中执行可选函数参数?”的技术将默认值插入到触发函数中。. 但这引入了一个风险,即懒惰的程序员(谁说我?)可能会留下该代码并产生意想不到的副作用。
当然还有更好的方法。
基于如何在 GAS 中测试触发功能的参考文献?来自Mogsdad 2014-11-14 19:40:55Z 编辑
编写一个将模拟事件传递给触发器函数的测试函数。这是一个测试触发功能的示例
onEdit()
。这将传递一个事件对象,其中包含了解事件中为“电子表格编辑事件”描述的所有信息。要使用它,请在您的目标函数上设置一个中断
onEdit
,选择该函数test_onEdit
并单击Debug
。如果您好奇,这是为了测试Google Spreadsheet
onEdit
的三个单元格函数的 条件。以下是电子表格中表单提交事件的功能。这通过从表单提交中读取数据来构建一个模拟事件。这最初是为在 onFormSubmit 触发器中获取 TypeError 编写的?.
提示
模拟事件时,请注意尽可能精确地匹配文档事件对象。
如果要验证文档,可以记录从触发函数接收到的事件。
valores
将跳过空白响应(在“新表单”+“新电子表格”中)。该方法filter(Boolean)
用于模拟这种行为。*格式化为“纯文本”的单元格会将日期保留为字符串,这不是一个好主意。
参考
Mogsdad的回复编辑 2014-12-03 17:16:57Z。