Your SlideShare is downloading. ×
0
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Introducción a TDD y PHPUnit
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introducción a TDD y PHPUnit

2,001

Published on

Breve introducción a TDD y PHPUnit

Breve introducción a TDD y PHPUnit

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,001
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. IntroducciónPHPUnit / TDD
  • 2. ¿Que es TDD?Es una metodología de desarrollo ágil
  • 3. ¿Para que sirve?Código Testeable
  • 4. ¿Para que sirve?Código Robusto
  • 5. ¿Para que sirve?Código Robusto
  • 6. ¿Cómo?Traducción de casosde uso a ejemplos.
  • 7. ¿Para que sirve?Diseñado desde un punto de vista diferente.
  • 8. ¿Para que sirve?Funcionalidad Justa … ono?? ...
  • 9. ¿Cómo?Las decisiones de diseño quedan para la fase dedesarrollo.
  • 10. ¿Cómo?Escribir la especificación
  • 11. ¿Cómo?Implementar el codigo para el ejemplo
  • 12. ¿Cómo?Refactorizar y realizar mejoras.
  • 13. Test Automáticos ¿Para que?
  • 14. ¿Cómo?<?phpecho count($array_fixture);echo count($array_fixture) == 1 ? "okn" : "not okn";assertTrue(count($fixture) == 1);function assertTrue($condition) { if (!$condition) { throw new Exception(Assertion failed.); }}
  • 15. ¿Cómo?<?phpclass FixturesTest extends PHPUnit_Framework_TestCase { public function testCountFixture($array_fixture) { $this->assertEquals(1, count($array_fixture)); }}
  • 16. ¿Cómo?
  • 17. Instalaciónpear channel-discover pear.phpunit.depear channel-discover components.ez.nopear channel-discover pear.symfony-project.compear install --alldeps phpunit/PHPUnit
  • 18. Escribiendo un Test<?php// test/FixturesTest.phprequire_once PHPUnit/Framework.php;require_once ../Fixtures.php;class FixturesTest extends PHPUnit_Framework_TestCase { public function testCountFixturesArray() { $fixtures = new Fixtures(); $fixtures_array = $fixtures->generate(); $this->assertEquals(1, count($fixtures_array)); }}
  • 19. Data Providers<?phpclass DataTest extends PHPUnit_Framework_TestCase { /** * @dataProvider provider */ public function testAdd($a, $b, $c) { $this->assertEquals($c, $a + $b); } public function provider() { return array( array(0, 0, 0), array(0, 1, 1), array(1, 0, 1), array(1, 1, 3) ); }}
  • 20. Excepciones y errores<?phpclass ExceptionTest extends PHPUnit_Framework_TestCase { /** * @expectedException InvalidArgumentException */ public function testException() { throw new InvalidArgumentException(); }}
  • 21. Excepciones y errores<?phpclass ExpectedErrorTest extends PHPUnit_Framework_TestCase { /** * @expectedException PHPUnit_Framework_Error */ public function testFailingInclude() { include not_existing_file.php; }}
  • 22. Afirmaciones/** * Asserts that a condition is true. * * @param boolean $condition * @param string $message * @throws PHPUnit_Framework_AssertionFailedError */function assertTrue($condition, $message = ){ return PHPUnit_Framework_Assert::assertTrue($condition, $message);}
  • 23. Afirmaciones/** * Asserts that a variable is of a given type. * * @param string $expected * @param mixed $actual * @param string $message * @since Method available since Release 3.5.0 */function assertInstanceOf($expected, $actual, $message = ){ return PHPUnit_Framework_Assert::assertInstanceOf($expected, $actual, $message);}
  • 24. Afirmaciones/** * Asserts that two variables are equal. * * @param mixed $expected * @param mixed $actual * @param string $message * @param float $delta * @param integer $maxDepth * @param boolean $canonicalize * @param boolean $ignoreCase */function assertEquals($expected, $actual, $message = , $delta = 0, $maxDepth = 10,$canonicalize = FALSE, $ignoreCase = FALSE){ return PHPUnit_Framework_Assert::assertEquals($expected, $actual, $message, $delta,$maxDepth, $canonicalize, $ignoreCase);}
  • 25. AfirmacionesPHPUnit tiene másde 120 Asserts !!!
  • 26. Afirmaciones Pero mejor NO las repasamos ahora !!!
  • 27. setUp() y tearDown()<?phpclass FixturesTest extends PHPUnit_Framework_TestCase { protected $item = false; public function setUp() { $this->item = new ItemObject(); } public function tearDown() { unset($this->item); }}
  • 28. Aplausos !!!

×