Introducción a PHPUnit
¿Qué es PHPUnit?
> Estándar de-facto para tests unitarios en proyectos PHP.
Nos proporciona un framework para:
> Escribir los tests de una manera sencilla.
> Ejecutarlos con facilidad.
> Analizar los resultados.
Introducción a PHPUnit
¿De dónde viene?
> Pertenece a la familia de frameworks de xUnit (escrito por Kent Beck,
@KentBeck - JUnit en Java).
Creador
> Sebastian Bergmann, @s_bergmann
Código
> GitHub → https://github.com/sebastianbergmann/phpunit/
Introducción a PHPUnit
Instalación con PEAR
PHP Extension and Application Repository
http://pear.php.net/
> $ pear upgrade PEAR
> $ pear config-set auto_discover 1
> $ pear install pear.phpunit.de/PHPUnit
Introducción a PHPUnit
Instalación con Composer
Dependency Manager for PHP
http://getcomposer.org/
> composer.json
{
"require": {
"phpunit/phpunit": "3.7.*"
},
"config": {
"bin-dir": "/usr/local/bin/"
}
}
> $ composer install|update (php composer.phar install|update)
Introducción a PHPUnit
Instalación con Phar
PHP Compressed files
http://php.net/manual/es/book.phar.php
> $ wget http://pear.phpunit.de/get/phpunit.phar
> $ chmod +x phpunit.phar
¿Cómo comprobamos que está instalado?
> $ phpunit --version
PHPUnit 3.7.18 by Sebastian Bergmann.
Introducción a PHPUnit
Mi primer test
> Creamos una clase MyFirstTest (MyFirstTest.php)
<?php
class MyFirstTest extends PHPUnit_Framework_TestCase {
public function testAlwaysOK()
{
$this->assertNull(null);
}
}
> $ phpunit --colors MyFirstTest
Introducción a PHPUnit
¿Cómo pasar el test?
> $ phpunit MyFirstTest
PHPUnit 3.7.18 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 1.25Mb
OK (1 test, 1 assertion)
Introducción a PHPUnit
PHPUnit command-line tool
. F E S I
Introducción a PHPUnit
Demo de ejemplo (DemoTest.php)
> Asserts
> Anotaciones
> Data providers
Introducción a PHPUnit
Test Suite usando configuración XML
> config.xml
<phpunit>
<testsuites>
<testsuite name="AlicantePHP">
<file>DemoTest.php</file>
</testsuite>
<testsuite name="Basic">
<file>MyFirstTest.php</file>
</testsuite>
</testsuites>
</phpunit>
> $ phpunit --configuration config.xml --testsuite AlicantePHP
> $ phpunit --configuration config.xml --testsuite Basic
Introducción a PHPUnit
Conclusión
> Testing: buenas prácticas.
> Equipos de trabajo grandes.
> Tranquilidad.
> Confianza para hacer cambios.
> Calidad en el código.
> No es gratis, cuesta desarrollar test y cuesta más desarrollar buenos
Tests.
...
Introducción a PHPUnit
muchas gracias

Introducción a PHPUnit

  • 3.
    Introducción a PHPUnit ¿Quées PHPUnit? > Estándar de-facto para tests unitarios en proyectos PHP. Nos proporciona un framework para: > Escribir los tests de una manera sencilla. > Ejecutarlos con facilidad. > Analizar los resultados.
  • 4.
    Introducción a PHPUnit ¿Dedónde viene? > Pertenece a la familia de frameworks de xUnit (escrito por Kent Beck, @KentBeck - JUnit en Java). Creador > Sebastian Bergmann, @s_bergmann Código > GitHub → https://github.com/sebastianbergmann/phpunit/
  • 5.
    Introducción a PHPUnit Instalacióncon PEAR PHP Extension and Application Repository http://pear.php.net/ > $ pear upgrade PEAR > $ pear config-set auto_discover 1 > $ pear install pear.phpunit.de/PHPUnit
  • 6.
    Introducción a PHPUnit Instalacióncon Composer Dependency Manager for PHP http://getcomposer.org/ > composer.json { "require": { "phpunit/phpunit": "3.7.*" }, "config": { "bin-dir": "/usr/local/bin/" } } > $ composer install|update (php composer.phar install|update)
  • 7.
    Introducción a PHPUnit Instalacióncon Phar PHP Compressed files http://php.net/manual/es/book.phar.php > $ wget http://pear.phpunit.de/get/phpunit.phar > $ chmod +x phpunit.phar ¿Cómo comprobamos que está instalado? > $ phpunit --version PHPUnit 3.7.18 by Sebastian Bergmann.
  • 8.
    Introducción a PHPUnit Miprimer test > Creamos una clase MyFirstTest (MyFirstTest.php) <?php class MyFirstTest extends PHPUnit_Framework_TestCase { public function testAlwaysOK() { $this->assertNull(null); } } > $ phpunit --colors MyFirstTest
  • 9.
    Introducción a PHPUnit ¿Cómopasar el test? > $ phpunit MyFirstTest PHPUnit 3.7.18 by Sebastian Bergmann. . Time: 0 seconds, Memory: 1.25Mb OK (1 test, 1 assertion)
  • 10.
    Introducción a PHPUnit PHPUnitcommand-line tool . F E S I
  • 11.
    Introducción a PHPUnit Demode ejemplo (DemoTest.php) > Asserts > Anotaciones > Data providers
  • 12.
    Introducción a PHPUnit TestSuite usando configuración XML > config.xml <phpunit> <testsuites> <testsuite name="AlicantePHP"> <file>DemoTest.php</file> </testsuite> <testsuite name="Basic"> <file>MyFirstTest.php</file> </testsuite> </testsuites> </phpunit> > $ phpunit --configuration config.xml --testsuite AlicantePHP > $ phpunit --configuration config.xml --testsuite Basic
  • 13.
    Introducción a PHPUnit Conclusión >Testing: buenas prácticas. > Equipos de trabajo grandes. > Tranquilidad. > Confianza para hacer cambios. > Calidad en el código. > No es gratis, cuesta desarrollar test y cuesta más desarrollar buenos Tests. ...
  • 14.