Test-Driven Development con phpUnit 1
March 9th, 2011Una de las mejores cosas que considero me han ayudado bastante a la hora de atacar un requerimiento, o al agregar nuevas funcionalidades a un sistema es sin duda generar pruebas unitarias. en PHP un framework para realizar tal tarea es phpUnit.
La instalación de phpunit es bastante sencilla, lo mas facil es instalarlo desde pear, aqui hay mas información al respecto.
Nuestro primer paso será crear un archivo de nombre phpunit.xml
$ touch phpunit.xml
y una carpeta de nombre test
$ mkdir test
al archivo phpunit.xml le agregamos la siguiente información.
< ?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="FALSE" backupStaticAttributes="FALSE" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="true" stopOnFailure="false" syntaxCheck="true" > <testsuites> <testsuite name="tutorial test suite"> <directory>./test/</directory> </testsuite> </testsuites> </phpunit>
Este es un archivo de configuración de phpunit donde especificamos que estamos generando un test suite de nombre “tutorial test suite”, y sus archivos de test estan contenidos dentro de la carpeta test.
Antes de entrar en materia. veamos un ejemplo de un archivo Test muy básico (test/TutorialTest.php)
< ?php class TutorialTest extends PHPUnit_Framework_TestCase { public function setUp() { } public function testSomething() { // mandar a llamar los métodos assert es la base de estos test, // aqui estamos probando que efectivamente true == true $this->assertTrue(true); } }
Las principales reglas para crear un archivo de test válido son..
- Extender de PHPUnit_Framework_TestCase
- el nombre de la clase debe tener terminación Test
- los nombres de test deben comenzar con test
si en este momento corremos phpunit obtendremos algo como esto
$ phpunit PHPUnit 3.5.13 by Sebastian Bergmann. . Time: 0 seconds, Memory: 4.00Mb OK (1 test, 1 assertion)
Ahora podemos hacer unas modificaciones …
