SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Introducción a PHPUnit

Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y BackEric Zeidan
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDDEmergya
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completoMETROPOLITANO
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoErnesto Gamboa
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completoUbeimar Navarro Herrera
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoIgnacio Reyes
 
633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)Eduardo Monroy Husillos
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoAlberto Martinez
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completoAndrés Amaya
 
Oscar recio - De 0 a 100 con Magento 2
Oscar recio  -  De 0 a 100 con Magento 2Oscar recio  -  De 0 a 100 con Magento 2
Oscar recio - De 0 a 100 con Magento 2Mage Titans ES
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosaFco Javier Núñez Berrocoso
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7Luis Ruiz Pavón
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetVicent Soria Durá
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfRaaulroodriguez
 

Similar a Introducción a PHPUnit (20)

Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Test Unitarios y E2E front y Back
Test Unitarios y E2E front y BackTest Unitarios y E2E front y Back
Test Unitarios y E2E front y Back
 
PHP Unit y TDD
PHP Unit y TDDPHP Unit y TDD
PHP Unit y TDD
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo633f9e tutorial de php y my sql completo
633f9e tutorial de php y my sql completo
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)633f9e tutorial de php y my sql completo (1)
633f9e tutorial de php y my sql completo (1)
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Php andmysql (1)
Php andmysql (1)Php andmysql (1)
Php andmysql (1)
 
Tutorial mysqlphp
Tutorial mysqlphpTutorial mysqlphp
Tutorial mysqlphp
 
Oscar recio - De 0 a 100 con Magento 2
Oscar recio  -  De 0 a 100 con Magento 2Oscar recio  -  De 0 a 100 con Magento 2
Oscar recio - De 0 a 100 con Magento 2
 
Pdf
PdfPdf
Pdf
 
Pucela testingdays testing_en_php
Pucela testingdays testing_en_phpPucela testingdays testing_en_php
Pucela testingdays testing_en_php
 
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
Magallanes, Herramienta de despliegue PHP sencilla y poderosa�Magallanes, Herramienta de despliegue PHP sencilla y poderosa�
Magallanes, Herramienta de despliegue PHP sencilla y poderosa
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppet
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Curso de php
Curso de phpCurso de php
Curso de php
 

Introducción a PHPUnit

  • 1.
  • 2.
  • 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 ¿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/
  • 5. 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
  • 6. 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)
  • 7. 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.
  • 8. 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
  • 9. 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)
  • 10. Introducción a PHPUnit PHPUnit command-line tool . F E S I
  • 11. Introducción a PHPUnit Demo de ejemplo (DemoTest.php) > Asserts > Anotaciones > Data providers
  • 12. 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
  • 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. ...