Google Аппс Скрипт выносит стрелки (Triggers), также так называемые активаторы, которые перемещают события (Events) в функции disparadoras/activadoreas, чтобы стрелять / включать в функции. К сожалению атмосфера разработки не позволяет тестировать функции, не перемещая параметров, так что не возможно симулировать событие этой формы. Когда он пробуется, она оказывается ошибкой как:
ReferenceError: 'e' is not defined.
Один может относиться к событию как к опциональному параметру и вводить стоимость, предопределенную в функции disparadora используя техники "Is there в better way to do optional function parameters in Javascript?". Но это вводит риск, которого ленивый программист (кто сказал я?) он оставит этот код с боковыми не умышленными эффектами.
С полной уверенностью есть лучшие способы.
Ссылки
Основанный на How, хан I тест в trigger function in ГАЗ? из-за Mogsdad редактирование 2014-11-14 19:40:55Z
Напиши функцию доказательства, которое перемещало бы событие, симулируемое в функцию disparadora. Здесь включается пример, который тестирует функцию disparadora onEdit()
. Эта перемещает объект события со всей информацией, описанной для "Спреадсеет Эдит Events" в Ундерстандинг Эвентс.
Чтобы использовать ее, стабильный прерывание в твоей функции цель onEdit
, выбери функцию test_onEdit
и кликни на Debug
.
/*
* Función de prueba para onEdit. Pasa un objento de evento para simular una
* edición a una celda en una hoja de cálculo
*
* Para actualizaciones revisar https://stackoverflow.com/a/16089067/1677912
*
* Véase
* https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/
function test_onEdit() {
onEdit({
user : Session.getActiveUser().getEmail(),
source : SpreadsheetApp.getActiveSpreadsheet(),
range : SpreadsheetApp.getActiveSpreadsheet().getActiveCell(),
value : SpreadsheetApp.getActiveSpreadsheet().getActiveCell().getValue(),
authMode : "LIMITED"
});
}
Если ты интересуешься, это было написано, чтобы тестировать функцию onEdit
для Google Spreadsheet conditional on three cells.
Далее находится функция для событий отправления формуляров в рабочем листе. Этот строит притворное событие читая данные об отправлении формуляра. Это было написано оригинально для Хеттинг Типееррор in onFormSubmit trigger?.
/**
* Función de prueba para funciones disparadoras en hojas de cálculo de
* envío de formularios.
* Recorre el contenido de la hoja, creando eventos de envío de formulario
* simulados
*
* Para actualizaciones revisar: https://stackoverflow.com/a/16089067/1677912
*
* Véase
* https://developers.google.com/apps-script/guides/triggers/events#google_sheets_events
*/
function test_onFormSubmit() {
var dataRange = SpreadsheetApp.getActiveSheet().getDataRange();
var data = dataRange.getValues();
var headers = data[0];
// Inicia en la fila 1, saltando los encabezados en la fila 0
for (var row=1; row < data.length; row++) {
var e = {};
e.values = data[row].filter(Boolean); // filtro: https://stackoverflow.com/a/19888749
e.range = dataRange.offset(row,0,1,data[0].length);
e.namedValues = {};
// Recorre los encabezados para crear un objeto namedValues
// NOTA: todos los namedValues son arreglos.
for (var col=0; col<headers.length; col++) {
e.namedValues[headers[col]] = [data[row][col]];
}
// Pasar el evento simulado a onFormSubmit
onFormSubmit(e);
}
}
Когда будут симулироваться события, быть осторожен соединения объектов события документов больше я нуждаюсь в том, чтобы было возможно.
Если хочется санкционировать документацию, могут регистрироваться события, полученные от функции disparadora.
Logger.log( JSON.stringify( e , null, 2 ) );
valores
он отпустит ответы в мишени (в "новых формулярах" + "новый рабочий лист"). Метод filter(Boolean)
он использован, чтобы симулировать это поведение.*Ячейка с форматом "плоский текст" предохранит дату как цепь, и это не хорошая идея.