Fitnesse.FixtureReference
Feature: Referencia Fitnesse Fixture
Objetivo: Functional Testing
Sponsor: Trek Global
Descripción:
Descripción:
FitNesse ofrece diversos "estilos de tabla de prueba" (o Fixtures) para escribir sus pruebas. Cada tabla/Fixture tiene su propio uso y propósito los cuales permite a los probadores escribir pruebas de aceptación sin necesidad de apoyo de desarrollo para la escritura de fixtures de código específico para cada nueva transacción. Así, este documento va a describir qué fixtures se puede utilizar y cómo, pero antes de pasar a explicar cómo funcionan, los siguientes conceptos son importantes de entender:
- Variable de contexto: El propósito de una variable de contexto es tener un valor visible durante la ejecución de laprueba. Hay cuatro tipos de variables de contexto
- Definido por el usuario: @variable_name@
- Predefinidos por Idempiere: estas variables fueron creados para mantener varios tipos de operaciones tales como:
@ SQL: permite mantener un valor devuelto por una sentencia SQL, por favor, note que otras variables de contexto se puede utilizar dentro de la sentencia SQL.
@ Ref: Permite mantener un valor de referencia a partir de una tabla específica de la columna, la estructura correcta de usarlo es "@Ref = Table[Where] Por ejemplo, la Columna.:
@ Ref. = AD_Client [Valor = 'GardenWorld']. AD_Client_ID "
@ random_number: generar un número aleatorio, acepta parámetros tales como: prefijo, sufijo, longitud y decimales.
@ random_string: generar una cadena aleatoria, acepta parámetros tales como: prefijo, sufijo, LONGITUD
- Puede identificar una acción a causa de los asteriscos (*), depende del fixture a usar
Aviso:
1. Si los Fixture pasan con éxito , sus filas serán de color verde de lo contrario serán de color ROJO
2. Si el carácter @ se necesita en una frase, entonces debe utilizarse dos backslash, por ejemplo //@
3. ! include-c: Puede incluir una prueba que ya haya realizado
Estructura de las Tablas
- La páginas wiki incluye alguna formas de tabla de decisión que expresan una prueba.
La estructura general para escribir la tablas de test son:
- El caracter de exclamacion ! debe estar en la primera linea
- Fixture Name : Nombre del Fixture
- *Value* : Valores relacionados con el fixture que se este ejecutando
- Column : Columnas de la tabla
- Variable : Variables relacionadas con el fixture
- *Execute* : Accion a ejecutar dependiendo del fixture (*Read, *save*,*Login*, *Run*)
!|Fixture Name| |[*Value* |Context Variable | Name's Table | User ] | (Optional) |[Column | Variable | Password | ] | (Optional) |[Column] | (Optional) |[*Execute*] | (Optional) |[Column] | (Optional)
Set Variable
- Asignar un valor a una Variable
Este Fixture permite asignar cualquier valor
Parametros
- @variable@ : Nombre de la Variable que ud quiere asignar
Retorno: El Valor que asigno y queda en el contexto.
Por Ejemplo:
Como escribir la prueba:
!|Set Variable| |@InventoryLevelBefore@|@SQL=SELECT SUM(s.qtyonhand) FROM m_storage s, m_locator l, m_warehouse w WHERE s.m_product_id=133 AND s.m_locator_id = l.m_locator_id AND l.m_warehouse_id=w.m_warehouse_id AND w.m_warehouse_id=103|
Assert Record
- Assert Record
Este Fixture permite comparar la salida de un registro de una tabla
Parametros:
- *Table* : Nombre de la Tabla
- Input Columns : Columnas relacionadas con la tabla
- Expected Values : Columnas relacionadas con la tabla
Parametros Opcionales
- *Where* : Para definir las columnas de la sentencia SQL (opcional y se debe definir en la segunda fila)
Comando para ejecutar
- *Read* : Para la ejecución del Fixture
Retorno:
- Valor de salida para comparar
Por Ejemplo::
Como escribir la prueba:
!|Assert Record| |*Table* |C_order | |c_order_id|@C_order.c_Order_id@| |*Read* | | |GrandTotal|67.50 |
Assert Variable
- Assert Variable
Este Fixture permite comparar una variable que ud haya definido anteriormente, variables de contexto, o retorno de los Fixture CreateRecord, readRecord
Parámetros:
- Variables : Las variables a establecer un valor definido
Retorno:
Las valores esperados
Por Ejemplo:
Como escribir la prueba
!|Assert Variable| |@ExpectedInventoryLevelAfter@|@SQL=SELECT SUM(s.qtyonhand) FROM m_storage s, m_locator l, m_warehouse w WHERE s.m_product_id=133 AND s.m_locator_id = l.m_locator_id AND l.m_warehouse_id=w.m_warehouse_id AND w.m_warehouse_id=103|
Create Record
Este Fixture permite crear un nuevo registro dentro de una tabla aplicando el Modelo de Idempiere
Parametros:
- *Table* : Nombre de la tabla
- Value (s) : Valores de las columnas relacionadas con la tabla, que desea crear
Comando para ejecutar
- *Save* : Para la ejecución del Fixture
Por Ejemplo:
Como escribir la prueba:
!|Create Record| |*Table* |C_Order | |ad_org_id |11 | |c_doctypetarget_id |@Ref=c_doctype[Name='POS Order'].c_doctype_id| |salesrep_id |101 | |dateordered |2009-03-25 00:00:00.0 | |c_bpartner_id |@c_bpartner.c_bpartner_id@ | |c_bpartner_location_id|114 | |paymentrule |B | |m_warehouse_id |103 | |m_pricelist_id |101 | |ad_user_id |105 | |*Save* | |
Login
Este Fixture permite probar el ingreso a la aplicación, este Fixture es necesario en todas las pruebas. Tener en cuenta el Paramento Rol aplica el esquema de seguridad Idempiere
Parametros:
- User : Nombre de usuario para ingresar
- Password : Password relacionado con el usuario
- AD_Client_ID : Numero ID del Cliente
- AD_Role_ID : Numero ID del Rol
- Language : El lenguaje con que quiere visualizar la aplicación
Parametros opcionales
- AD_Org_ID : Numero ID de la Organización
- M_Warehouse_ID : Numero ID de la Bodega
Comando para ejecutar
- *Login* : Para la ejecución del Fixture
Retorno:
- Loggeo exitoso
Por Ejemplo:
Como escribir la prueba:
!|Login| |User |SuperUser| |Password |System | |AD_ClIEnT_id|0 | |AD_Role_id |0 | |*Login* | |
Read Record
- Leer un Registro
Este Fixture permite leer un registro de una tabla con las columnas que ud defina
Parametros:
- *Table* : Nombre de la Tabla
- set Columns: Columnas relacionadas que desee leer
Parametros opcionales
- *Where* : Para definir las columnas de la sentencia SQL (opcional y se debe definir en la segunda fila)
Comando para ejecutar
- *Read* : Para la ejecución del Fixture
Retorno
- Todas las columnas de la tabla creada quedaran en el contexto, para ser usadas .
Por Ejemplo:
Como escribir la prueba:
!|Read Record| |*Table* |C_bpartner| |c_bpartner_id |120 | |*Read* | | |actuallifetimevalue| | |so_creditused | | |totalopenbalance | |
Run Process
Este Fixture permite ejecutar procesos (Los Reportes no están soportados todavía)
Parametros:
- *ProcessValue* : Nombre del Proceso
Parametros opcionales
- *RecordID* : Numero ID del registro relacionado con el proceso
- *DocAction* : Accion del documento que quiere realizar
- Parameters : Las Columnas relacionadas con la tabla (opcional si no es obligatorio para el proceso), Si el paramentro escogido es de rango el segundo paramentro debe tener al final "_2" pro Ejemplo e.g. "time_2"
Comando para ejecutar
- *Run* : Para la ejecución del Fixture
Por Ejemplo:
Como escribir la prueba:
!|Run Process| |*ProcessValue*|C_Order Process | |*RecordID* |@C_Order.C_Order_ID@| |*DocAction* |CO | |*Run* | |
Set Doc Action
Este Fixture permite implementar la acción a un documento
Parametros:
- *Table* : Nombre de la Tabla
- ValueID : Numero ID relacionada de la tabla
- DocAction : Acción al documento al cual quiere realizarle, las opciones disponibles son :
Complete = "CO" Approve = "AP" Reject = "RJ" Post = "PO" (posted a document) Void = "VO" Reverse Accrual = "RA" Invalidate = "IN" Re Activate = "RE" WaitComplete = "WC"
Comando para ejecutar
- Save : Para la ejecución del Fixture
Por Ejemplo:
Como escribir la prueba:
!|Set DocAction | |*Table* |C_Payment| |C_Payment_ID|100 | |docAction |VO | |*Save* | |