¿Qué es una prueba funcional?

 
Definición de Wikipedia: “Una prueba funcional es una prueba basada en la ejecución, revisión y retroalimentación de las funcionalidades previamente diseñadas para el software. Las pruebas funcionales se hacen mediante el diseño de modelos de prueba que buscan evaluar cada una de las opciones con las que cuenta el paquete informático.”

 

¿Qué es vEST?

 
vEST es el conjunto de aplicaciones y scripts que permiten realizar pruebas funcionales de Velneo V7 en distintos sistemas operativos y relacionado con el sistema de integración continua. Se distinguen pruebas funcionales de pruebas de interfaz debido a su distinto tratamiento. vEST sólo realiza comprobaciones de tareas sin interfaz.

 

¿Qué es vJavaScript?

 
vJavaScript es la implementación realizada en Velneo sobre el lenguaje de programación JavaScript al que se le han añadido un conjunto de clases que aportan objetos y funciones adicionales para obtener una integración completa en la plataforma de desarrollo de aplicaciones empresariales Velneo V7.

 

VTableInfo

 
Los objetos de esta clase contienen la información de la estructura de una tabla. Tiene funciones generales de la tabla, como ver su id o su tipo, y funciones para obtener información de sus subobjetos: campos, indices e históricos. También nos permite obtener otros VTablaInfo de las tablas enlazadas como maestros o históricos. En el blog del vArquitecto encontrarás la información detallada sobre esta clase y sus funciones “Class VTableInfo para vJavaScript“.

 

Testeo de las funciones

 
En vEST se ha incluido el testeo de un grupo de funciones de la clase VTableInfo. A continuación se muestran las capturas de los códigos de las pruebas que espero te puedan ayudar como material de consulta sobre la codificación de estas funciones.

vEST graba en la tabla LOG los resultados de las pruebas. Por ese motivo el script comienza abriendo la transacción en la que se incluirán las altas de los registros con los resultados de las pruebas. La tabla de entrada del proceso que ejecuta el script es precisamente la tabla LOG, es precisamente contra esta tabla contra la que se lanzarán las funciones.

Antes de ejecutar el script se crea un registro en blanco que utilizaremos para grabar los registros del LOG, por el momento y mientras no tengamos activas las funciones de crear registro en memoria lo que hace el script tras abrir la transacción es leer el registro (0), es decir, el primero de la tabla LOG con la función readLockingAt(0) por lo tanto el registro se lee en modo lectura/escritura, es decir con bloqueo lo que nos permite lanzar operaciones de base de datos contra dicho registro.

// ----------------------------------------------------------------------------------------------------
// TEST DE FUNCIONES VJAVASCRIPT
// CLASE VTableInfo
// ----------------------------------------------------------------------------------------------------
VRoot.openTrans("Alta en el log");
var registro = VRegisterListIn.readLockingAt(0);

 

Todos los testeos se realizan de la misma forma:

  • 1º Se guarda en una variable el resultado de la ejecución de la función.
  • 2º Se modifica el campo NAME de la tabla LOG con la descripción de la función testada.
  • 3º Se modifica el campo RESULTADO de la tabla LOG con el resultado de la comparación del valor retornado por la función y la constante que contiene el resultado esperado.
  • 4º Se añade el nuevo registro en la tabla LOG.

VTableInfo.id(): Devuelve el valor de la propiedad identificador de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_001 - Tabla VTableInfo.id()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().id();
registro.setField("NAME", "VJS_TBI_001 - Tabla VTableInfo.id()");
registro.setField("RESULTADO", String(resultado == "LOGS"));
registro.addRegister();

 

VTableInfo.name(): Devuelve el valor de la propiedad nombre plural de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_002 - Tabla VTableInfo.name()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().name();
registro.setField("NAME", "VJS_TBI_002 - Tabla VTableInfo.name()");
registro.setField("RESULTADO", String(resultado == "Logs"));
registro.addRegister();

 

VTableInfo.singleName(): Devuelve el valor de la propiedad nombre singular de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_003 - Tabla VTableInfo.singleName()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().singleName();
registro.setField("NAME", "VJS_TBI_003 - Tabla VTableInfo.singleName()");
registro.setField("RESULTADO", String(resultado == "Log"));
registro.addRegister();

 

VTableInfo.type(): Devuelve el valor de la propiedad tipo de tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_004 - Tabla VTableInfo.type()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().type();
registro.setField("NAME", "VJS_TBI_004 - Tabla VTableInfo.type()");
registro.setField("RESULTADO", String(resultado == 0));
registro.addRegister();

 

VTableInfo.isInMemory(): Devuelve un 1 Si la tabla está definida con persistencia en memoria y un 0 si la tabla está definida con persistencia en disco.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_005 - Tabla VTableInfo.isInMemory()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().isInMemory();
registro.setField("NAME", "VJS_TBI_005 - Tabla VTableInfo.isInMemory()");
registro.setField("RESULTADO", String(resultado == 0));
registro.addRegister();

 

VTableInfo.registerLength(): Devuelve el tamaño del registro de la tabla en bytes.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_006 - Tabla VTableInfo.registerLength()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().registerLength();
registro.setField("NAME", "VJS_TBI_006 - Tabla VTableInfo.registerLength()");
registro.setField("RESULTADO", String(resultado == 142));
registro.addRegister();

 

VTableInfo.fieldCount(): Devuelve el número de campos de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_007 - Campos VTableInfo.fieldCount()
// ----------------------------------------------------------------------------------------------------
var resultado = VRegisterListIn.tableInfo().fieldCount();
registro.setField("NAME", "VJS_TBI_007 - Campos VTableInfo.fieldCount()");
registro.setField("RESULTADO", String(resultado == 6));
registro.addRegister();

 

VTableInfo.fieldId(): Devuelve el valor de la propiedad identificador de un número de campo. Para evaluar esta función se hace un bucle concatenando el valor de la propiedad identificador de todos los campos de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_008 - Campos VTableInfo.fieldId()
// ----------------------------------------------------------------------------------------------------
var resultado = ""
for (var x=0; x < VRegisterListIn.tableInfo().fieldCount(); x++)
{
var resultado = resultado + VRegisterListIn.tableInfo().fieldId(x) + " ";
}
registro.setField("NAME", "VJS_TBI_008 - Campos VTableInfo.fieldId()");
registro.setField("RESULTADO", String(resultado == "ID NAME RESULTADO EQUIPO TIEMPO VALOR "));
registro.addRegister();

 

VTableInfo.fieldName(): Devuelve el valor de la propiedad descripción de un número de campo. Para evaluar esta función se hace un bucle concatenando el valor de la propiedad descripción de todos los campos de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_009 - Campos VTableInfo.fieldName()
// ----------------------------------------------------------------------------------------------------
var resultado = ""
for (var x=0; x < VRegisterListIn.tableInfo().fieldCount(); x++)
{
var resultado = resultado + VRegisterListIn.tableInfo().fieldName(x) + " ";
}
registro.setField("NAME", "VJS_TBI_009 - Campos VTableInfo.fieldName()");
registro.setField("RESULTADO", String(resultado == "Codigo Nombre Resultado Equipo TIEMPO Valor "));
registro.addRegister();

 

VTableInfo.fieldType(): Devuelve el tipo de campo de un número de campo. Para evaluar esta función se hace un bucle concatenando el valor del tipo de campo de todos los campos de la tabla.

// ----------------------------------------------------------------------------------------------------
// VJS_TBI_010 - Campos VTableInfo.fieldType()
// ----------------------------------------------------------------------------------------------------
var resultado = ""
for (var x=0; x < VRegisterListIn.tableInfo().fieldCount(); x++)
{
var resultado = resultado + VRegisterListIn.tableInfo().fieldType(x) + " ";
}
registro.setField("NAME", "VJS_TBI_010 - Campos VTableInfo.fieldType()");
registro.setField("RESULTADO", String(resultado == "6 1 10 3 9 6 "));
registro.addRegister();

 

Tagged with:
 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>