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* | |







