- 1. Introducción e instalación
- 2. Tests de aceptación con PhpBrowser
- 3. Tests de aceptación con WebDriver y PhantomJS
- 4. Tests de aceptación con WebDriver y Selenium
- 5. WPBrowser
- 6. Tests unitarios
Con esta entrada comienza una serie de 6 posts donde veremos lo que nos puede aportar codeception para el desarrollo de nuestros proyectos.
Codeception es un framework que te ofrece 3 suites (tests unitarios, tests funcionales y tests de aceptación) para que realices tests sobre tu desarrollo.
Los tests aplicados a un software intentan poner de manifiesto errores, carencias de funcionalidad, comportamientos inesperados… causados por modificaciones y/o evoluciones del software… lo que nos ha pasado a todos de tocar en un sitio y que se rompa otra cosa.
El objetivo de generar una batería de tests es mejorar la calidad de tus desarrollos. Bien hechos y con una cobertura suficiente, te garantizan la tranquilidad de que ante evoluciones y modificaciones del código, los casos de uso que ya habían sido probados sigan funcionando correctamente, y que las nuevas evoluciones y/o funcionalidades tengan el comportamiento esperado.
Aun así, los tests no te pueden dar una garantía 100% de que tu software funciona a la perfección, pero mejor tenerlos que no. Es muy difícil garantizar que un test es 100% fiable, ¿Quién vigila al vigilante?. Para muestra un botón:
Codeception está compuesto por Actors. Los Actors son clases con métodos predefinidos que autogenera codeception para cada suite: UnitTester, FunctionalTester y AcceptanceTester. Estas clases pueden ser configuradas mediante archivos de configuración Yaml.
Cada Actor ejecuta Steps, que son cada instrucción individual dentro de un escenario (agrupación de aserciones). Las instrucciones que puede generar un Actor se agrupan en módulos: PhpBrowser, DB, FileSystem, Cli, Asserts…
Instalación de Codeception
Sin más dilación, vamos al lio. Necesitarás tener instalado composer. Lo primero es crear una carpeta «codeception» (o el nombre que quieras) en la carpeta raíz de tu proyecto (o donde desees).
Entra en tu carpeta «codeception» y escribe:
composer require codeception/codeception --dev
Para no tener que ejecutar php vendor/bin/codecept XXXX cada vez que queramos ejecutar un comando, vamos a descargarnos el .phar e instalarlo globalmente:
sudo curl -LsS https://codeception.com/codecept.phar -o /usr/local/bin/codecept
sudo chmod a+x /usr/local/bin/codecept
El siguiente paso es inicializar nuestro entorno de testing con el siguiente comando:
codecept bootstrap
Ya podemos observar que nos ha generado lo siguiente dentro de nuestra carpeta tests, 3 suites (grupos de tests): acceptance, functional y unit, con sus tres ficheros de configuración: acceptance.suite.yml, functional.suite.yml y unit.suite.yml
Con esto ya tenemos codeception listo para comenzar a crear nuestros tests, en el siguiente post veremos qué son y cómo realizar tests de aceptación en codeception para WordPress.