Calabash es un framework open source que permite el testing automatizado de aplicaciones moviles desarrollado por Xamarin; para ello utiliza Cucumber, software escrito en Ruby pensado para el testing de software, aunque es independiente del lenguaje utilizado. También podemos utilizarlo para el desarrollo web usando Selenium, aunque en este articulo veremos como usarlo para las aplicaciones Android.

Calabash ejecuta una serie de pruebas funcionales automatizadas contra la interfaz de usuario de una aplicación. Está pensado para ser usado en un modelo de Testing BDD.

Instalación y funcionamiento

Para empezar a instalarlo, tienes que tener instalado Ruby, si no lo tienes lo puedes instalar desde aquí: RubyInstaller.org

También, tienes que tener instalado el JDK (Java Development Kit), que lo puedes descargar de aqui y el SDK de Android, lo puedes descargar desde aqui

Una vez instalado todo esto tienes que ejecutar el siguiente comando para instalarlo:

  • gem install calabash-android

Si ya has instalado calabash, puedes generar un esqueleto Cucumber con el siguiente comando:

  • calabash-android gen

Automáticamente generará las carpetas con los archivos .feature y .rb

En el archivo con extension .feature se especifica lo que queremos que Calabash ejecute automáticamente. Por ejemplo un feature con un escenario para el login muy sencillo, de una aplicación quedaría de esta manera:

    Feature: Login Feature
    Scenario: As a valid user I can log into my app
    Given I enter text "luisca_jl" into field with id "txtLogin" //pasamos los id de los elementos como string
    And I enter "1234" into input field number 2
    And I go back //Vuelve atras para cerrar el teclado
    When I press "btnLogin"
    Then I see "Bienvenido de nuevo" 

Puedes ejecutar el testing en la maquina virtual de Android que viene con el SDK o directamenete en nuestro dispositivo si esta conectado a nuestro ordenador.

Por último ejecutamos el comando para que empiece automáticamente a testear la aplicación:

  • calabash-android run <apk&gt

Y automáticamente abrirá la aplicación en la maquina virtual o en nuestro dispositivo si lo tenemos conectado.

Testing de aplicaciones Android usando Calabash