Fitnesse.HowToTestCase

De iDempiere es

Feature: Fitnesse How To Test Case

Objetivo: Pruebas Funcionales

Sponsor: Trek Global

Descripcion:

Para Diseñar y escribir una prueba exitosa en Fitnesse deberia tener en cuenta las siguientes recomendaciones

Suite

Una suite es una colección de páginas de prueba que se pueden ejecutar en conjunto, y cuyos resultados se recogen en una sola página.

Suite.png

Como realizar la creación de una página Suite.

Para crear una página suite se establece la propiedad "Suite". Esa página incluirá un botón "Suite" que ejecutará todas las páginas de prueba en esa jerarquía.

SuiteEdit.png


Creando Suites

There are several ways to compose a suite. You can convert a whole subwiki into a suite. You can list individual pages using cross references, and you can create queries that search all the pages for matches.


Hay varias maneras para componer una suite. Usted puede convertir toda una subwiki en una suite. Puede listar las páginas individuales mediante referencias cruzadas, y usted puede crear consultas que buscar todas las páginas.


Pruebas

Las Pruebas automatizadas de aceptación de FitNesse son las herramientas para solucionar problemas de procesos rotos


Test de Ejemplo

  • Este test es un ejemplo de Orden de Punto de Venta en efectivo
  • Primero incluir la prueba de Login (Es Obligatoria) :
!include -c TestLoginGardenAdmin


  • Verifica el nivel de inventario antes de crear la orden de venta: Se usan los Fixture Set Variable, @SQL
!|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   |
|@ExpectedInventoryLevelAfter@|@SQL=SELECT SUM(s.qtyonhand) -2 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|


  • Verifica el balance del Business Partner antes de crear la orden de venta: Se usan los Fixture Read Record, @Ref
!|Read Record|
|*Table*            |C_bpartner                                     |
|c_bpartner_id      |@Ref=c_bpartner[Value='SeedFarm'].c_bpartner_id|
|*Read*             |                                               |
|actuallifetimevalue|                                               |
|so_creditused      |                                               |
|totalopenbalance   |                                               |


  • Se crea la Orden de venta: Se usan los Fixture Create Record, @Ref, context variable @c_bpartner.c_bpartner_id@
!|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*                |                                             |
  • Crea las lineas de las Ordenes de Venta: Se usan los Fixture Create Record, context variable, @Ref
!|Create Record|
|*Table*     |C_OrderLine                                |
|c_order_id  |@C_order.c_Order_id@                       |
|ad_org_id   |@C_Order.AD_Org_ID@                        |
|m_product_id|@Ref=M_Product[Value='PChair'].M_Product_ID|
|qtyentered  |2                                          |
|qtyordered  |2                                          |
|*Save*      |                                           | 
  • Completa la Orden de venta: Se usan los Fixture Run Process, Context variable
!|Run Process|
|*ProcessValue*|C_Order Process     |
|*RecordID*    |@C_Order.C_Order_ID@|
|*DocAction*   |CO                  |
|*Run*         |                    |
  • Asegurar el gran Total de la Orden sea el esperado: Se usan los Fixture Assert Record, context variable
!|Assert Record|
|*Table*   |C_order             |
|c_order_id|@C_order.c_Order_id@|
|*Read*    |                    |
|GrandTotal|67.50               |


  • Verifica los niveles de Inventario con la variable de Contexto @ExpectedInventoryLevelAfter@ sea la esperada: Se usan los Fixture Assert Variable, context variable
!|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|


  • Verifica el balance del Bussines Parnert: Se usan los Fixture Assert Record, @Sql
!|Assert Record|
|*Table*            |C_bpartner                                                                   |
|*Where*            |c_bpartner_id=120                                                            |
|*Read*             |                                                                             |
|actuallifetimevalue|@SQL=SELECT @C_bpartner.actuallifetimevalue@ + @c_order.grandtotal@ FROM DUAL|
|so_creditused      |@SQL=SELECT @C_bpartner.so_creditused@ + @c_order.grandtotal@ FROM DUAL      |
|totalopenbalance   |@SQL=SELECT @C_bpartner.totalopenbalance@ + @c_order.grandtotal@ FROM DUAL   |


  • Verificamos la existencia del envio relacionado con la Orden de venta: Se usan los Fixture Read Record Context Variable
!|Read Record|
|*Table*       |M_InOut             |
|c_order_id    |@C_Order.C_Order_ID@|
|*Read*        |                    |
|documentno    |                    |
|docstatus     |                    |
|issotrx       |                    |
|m_warehouse_id|                    |
|description   |                    |


  • Verificamos la existencia de la lineas del envio relacionado con la Orden de vena: Se usan los Fixture Read Record Context Variable


!|Read Record|
|*Table*       |M_InOutLine         |
|m_inout_id    |@M_InOut.M_InOut_ID@|
|*Read*        |                    |
|line          |                    |
|description   |                    |
|c_orderline_id|                    |
|m_locator_id  |                    |
|m_product_id  |                    |
|movementqty   |                    |


  • Verificamos la existencia de la factura relacionada con la Orden de venta: Se usan los Fixture Read Record Context Variable
!|Read Record|
|*Table*      |C_Invoice           |
|c_order_id   |@C_Order.C_Order_ID@|
|*Read*       |                    |
|documentno   |                    |
|issotrx      |                    |
|docstatus    |                    |
|c_bpartner_id|                    |
|description  |                    |
|totallines   |                    |
|grandtotal   |                    |


  • Verificar la existencia de las lineas de la factura relacionadas con la Orden de venta: Se usan los Fixture Read Record Context Variable
!|Read Record|
|*Table*       |C_InvoiceLine           |
|C_Invoice_id  |@C_Invoice.C_Invoice_id@|
|*Read*        |                        |
|line          |                        |
|description   |                        |
|c_orderline_id|                        |
|m_product_id  |                        |
|qtyinvoiced   |                        |
|linenetamt    |                        |


  • Verifica la existencia de la línea de caja diario relacionado
!|Read Record|
|*Table*     |C_CashLine              |
|C_Invoice_id|@C_Invoice.C_Invoice_id@|
|*Read*      |                        |
|line        |                        |
|c_cash_id   |                        |
|line        |                        |
|description |                        |
|amount      |                        |
|isgenerated |                        |
|processed   |                        |
Las cookies nos ayudan a ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas nuestro uso de cookies.