Descripción: Calabash es de código abierto y es compatible con Cucumber, lo que permite escribir pruebas en lenguaje natural que pueden entender los expertos comerciales y el control de calidad no técnico. Calabash framework funciona al permitir interacciones de UI dentro de una aplicación, como presionar botones, ingresar textos, validar respuestas, etc. También proporciona un puente que permite que las pruebas de Cucumber se ejecuten y validen en iOS y Android. Calabash contiene pruebas reales que están escritas en Gherkin, respaldadas por el código del lenguaje Ruby y se ejecutan en el contexto de Cucumber Framework. En Calabash, los archivos de definición de características y los archivos de definición de pasos juegan un papel importante para ejecutar la automatización móvil.
Archivo de definiciones de funciones: El archivo de definiciones de características contiene un escenario que está escrito en lenguaje Gherkin. Por ejemplo, la siguiente característica describe el escenario de validación de tarjeta de crédito:
Escenario: el número de la tarjeta de crédito es demasiado largo
Dado que el usuario valida un número de tarjeta de crédito que tiene 19 caracteres
Luego, el usuario debería ver un mensaje de validación.
Archivos de definición de pasos: Los archivos de definición de pasos son como código subyacente para los escenarios definidos en el archivo de funciones. Por ejemplo, el siguiente código contiene las definiciones de los pasos necesarios para ejecutar las pruebas de validación de tarjetas de crédito que se explican anteriormente: Dado (/^I valido un número de tarjeta de crédito que tiene (d+) caracteres de longitud$/) do |number_digits| touch (“campo de texto marcado: ‘Campos de número de tarjeta de crédito'”) keyboard_enter_texts (“907” * number_digits.to_i) touch (“botón marcado: ‘ValidateMessage'”) final Luego (/^El usuario debería ver un mensaje de validación “(.*?)” $/) hacer | validación _mensaje| vista_de_texto = consulta (“vista de texto marcada: ‘ValidationMessagesField’ {el texto CONTIENE ‘#{ mensaje de validación}’}”) aumentar “Un mensaje de validación ‘#{ mensaje de validación}’ no está visible en la vista”. a menos que text_view.any?