unit-testing - tutorial - unit test android
cómo probar las secuencias de comandos de las aplicaciones de Google? (4)
Intento establecerme con pruebas unitarias para guiones de aplicaciones de Google, y encontré dos proyectos:
https://code.google.com/p/gas-unit/ https://code.google.com/p/gasunit/
Así que estoy confundido que usar :-)
Acabo de probar la gasunit sin cifrar, lo que parece esperar que el script esté incrustado en una hoja de cálculo, que no tengo muy claro cómo hacer ... y los scripts que quiero probar son scripts basados en web en lugar de hojas de cálculo unos
Tuve más suerte probando la unidad de gas con guiones, que logró enviarme un correo electrónico de la prueba y generar una página de resultados en mi sitio de google:
https://sites.google.com/site/testappscript2/TestResults
así que voy a ir con la unidad de gas por el momento, pero realmente me gustaría ver algún marco de prueba oficial incorporado por Google. En particular, me gustaría encontrar la manera de hacer que estos scripts se ejecuten con cierta frecuencia para enviarme los resultados. También me encantaría ponerme un poco de BDD; ver mis otras publicaciones:
Cómo obtener Pepino / Capibara / Mecanizar para trabajar contra un sitio externo sin rieles cómo usar capibara has_text
Vamos Google, tienes famoso "Prueba de rocas, la depuración es una mierda" en todos tus baños? ¿Qué tal un mejor soporte de prueba para Google Apps Scripts?
Puede probar QUnit para Google Apps Script . Es un parche para QUnit convertido en una biblioteca de Google Apps Script con documentos API .
Todo lo que necesita es un proyecto de script que importe una biblioteca QUnit (por ejemplo, la que tiene la clave de proyecto MxL38OxqIK-B73jyDTvCe-OBao7QLBR4j
) y tiene una función doGet que configura QUnit usando parámetros de URL y opcionalmente también con su propia configuración, carga una función que ejecuta tus pruebas y finalmente devuelve QUnit.getHtml (). Aquí hay un ejemplo:
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);
});
}
Luego, autorice el script, guarde una versión del mismo, publique el proyecto de script ("Implementar como aplicación web") y vaya a la URL de prueba ("código más reciente") con su navegador. Sus pruebas se ejecutarán y los resultados se mostrarán a través de HtmlService. Puede hacer clic solo sobre ellos para ver sus afirmaciones, pero al escribir esto, probablemente no podrá hacerlo en Firefox 20 y 21 debido a la emisión 1688 de la Caja .
Creé una unidad de gas ( https://code.google.com/p/gas-unit/ ) y pasé un poco de tiempo durante los últimos días ordenando los ejemplos y agregando un corrector de prueba HTML.
Lo he usado yo mismo para la manipulación de hojas de cálculo que he estado haciendo con bastante éxito. También he estado usando Jasmine para tareas ajenas al GAS y he disfrutado mucho. Echo de menos la capacidad en la unidad de gas para crear fácilmente spys y estoy a favor del estilo BDD de escritura de especificación.
La unidad de gas ha sido un gran ejercicio de aprendizaje para mí y funciona, aunque puede haber problemas no descubiertos con el alcance y el cierre: este es mi primer ejercicio significativo de js fuera de la manipulación DOM.
Creo que el futuro para probar en GAS tiene que ser con un puerto de QUnit (como lo sugiere Adam) o Jasmine. Eché un vistazo rápido a lo que tomaría llevar a puerto a Jasmine pero aún no he podido encontrar el tiempo para abordarlo.
Acabo de escribir otro marco de prueba denominado GasT para mi desarrollo y prueba de complementos de la hoja de cálculo de Google.
GasT es un marco de prueba compatible con TAP para Google Apps Script. Proporciona una forma simple de verificar que los programas GAS que escribe se comporten como se espera. https://github.com/zixia/gast
Mi objetivo es obtener una herramienta de toque simple como cinta (para javascript) o murciélagos (para bash). el formato del conjunto de pruebas es bastante claro:
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()
}
Espero que a alguien le guste. :)
hay una versión en línea, puede ir a verla aquí: https://docs.google.com/spreadsheets/d/19M2DY3hunU6tDQFX5buJmZ_f3E8VFmlqAtodyC-J8Ag/edit#gid=0&vpid=A1
Ahora hay un paquete node-google-apps-script para permitir el uso de paquetes JavaScript estándar y herramientas de prueba automatizadas.
-
npm install -g node-google-apps-script
. - Siga los pasos de autorización para proporcionar los secretos del cliente para permitir la carga e importación de proyectos de Apps Script.
- Use
gulp
ogrunt
o lo que sea que use para probar ejecutando proyectos normales de JavaScript.
Hay una muestra oficial de Google disponible que usa este flujo de trabajo.
Consulte el anuncio de la publicación del Blog de Desarrolladores de Google Apps para obtener más detalles.