Empezando con PHPUnit
$ composer require --dev "phpunit/phpunit=5.0.*"Empezando con PHPUnit
class Unicorns() {
private $count = 8;
public function getCount() {
return $this->count;
}
public function steal($number) {
$this->count -= $number;
}
}class UnicornsTest extends PHPUnit_Framework_TestCase() {
public function test_can_steal() {
// Setup
$unicorns = Unicorns();
// Action
$unicorns->steal(5);
// Assert
$this->assertEquals(3, $unicorns->getCount());
}
}Empezando con PHPUnit
assertEquals($expected, $actual [, $message = '']);Empezando con PHPUnit
$ phpunit tests/unicorns.phpPHPUnit 3.4.0 by Sebastian Bergmann.
..
Time: 0 seconds, Memory: 0.5Mb
OK (1 test, 1 assertion)Optimizando el código | PHPUnit
class Unicorns() {
private $count = 8;
public function getCount() {
return $this->count;
}
public function steal($number) {
// Make sure we can't have negative unicorns
if($this->count - $number >= 0) {
$this->count -= $number;
}
}
}
Optimizando el código | PHPUnit
class UnicornsTest extends PHPUnit_Framework_TestCase() {
public function test_can_steal() {
$unicorns = Unicorns();
$unicorns->steal(5);
$this->assertEquals(3, $unicorns->getCount());
}
public function test_cant_steal() {
$unicorns = Unicorns();
$unicorns->steal(1000);
$this->assertEquals(8, $unicorns->getCount());
}
}Optimizando el código | PHPUnit
class Unicorns() {
private $count = 8;
public function getCount() {
return $this->count;
}
public function steal($number) {
$this->count -= $this->count - $number >= 0 ? $number : 0;
}
}Optimizando el código | PHPUnit
$ phpunit tests/unicorns.phpPHPUnit 3.4.0 by Sebastian Bergmann.
..
Time: 0 seconds, Memory: 0.5Mb
OK (2 tests, 2 assertions)Ups! | PHPUnit
class Unicorns() {
private $count = 8;
public function getCount() {
return $this->count;
}
public function steal($num) {
$this->count -= $this->count - $num >= 0 ? $num : $this->count;
}
}Optimizando el código | PHPUnit
$ phpunit tests/unicorns.phpPHPUnit 3.4.0 by Sebastian Bergmann.
.F
Time: 0 seconds, Memory: 0.5Mb
There was 1 failure:
1) UnicornsTest::test_cant_steal
Failed asserting that 0 matches expected 8.
/path/to/test/unicorns.php:11
FAILURES!
Tests: 2, Assertions: 2, Failures: 1.Optimizando el código | PHPUnit
$ phpunit tests/PHPUnit 3.4.0 by Sebastian Bergmann.
...
Time: 0 seconds, Memory: 0.5Mb
OK (13 tests, 13 assertions)
PISTA: El nombre de las pruebas debe ser *Test
Funciones de PHPUnit
Se ejecuta antes de cada test dentro de la misma clase.
class UnicornsTest extends PHPUnit_Framework_TestCase() {
protected function setUp() {
// Create the unicorns object for each test
$this->unicorns = Unicorns();
}
public function test_can_steal() {
$this->unicorns->steal(5);
$this->assertEquals(3, $this->unicorns->getCount());
}
public function test_cant_steal() {
$this->unicorns->steal(1000);
$this->assertEquals(8, $this->unicorns->getCount());
}
}
Funciones de PHPUnit
Se ejecuta luego de cada test dentro de la misma clase.
class UnicornsTest extends PHPUnit_Framework_TestCase() {
protected function tearDown() {
// Clean up the mess you've made
}
public function test_can_steal() {
$this->unicorns->steal(5);
$this->assertEquals(3, $this->unicorns->getCount());
}
public function test_cant_steal() {
$this->unicorns->steal(1000);
$this->assertEquals(8, $this->unicorns->getCount());
}
}Funciones de PHPUnit
Funciones de PHPUnit
¡Muchos asserts!
assertArrayHasKey()
assertClassHasAttribute()
assertClassHasStaticAttribute()
assertContains()
assertContainsOnly()
assertContainsOnlyInstancesOf()
assertCount()
assertEmpty()
assertEqualXMLStructure()
assertEquals()
assertFalse()
assertFileEquals()
assertFileExists()
assertGreaterThan()
assertGreaterThanOrEqual()
assertInstanceOf()
assertInternalType()
assertJsonFileEqualsJsonFile()
assertJsonStringEqualsJsonFile()
assertJsonStringEqualsJsonString()
assertLessThan()
assertLessThanOrEqual()
assertNull()
assertObjectHasAttribute()
assertRegExp()
assertStringMatchesFormat()
assertStringMatchesFormatFile()
assertSame()
assertSelectCount()
assertSelectEquals()
assertSelectRegExp()
assertStringEndsWith()
assertStringEqualsFile()
assertStringStartsWith()
assertTag()
assertThat()
assertTrue()
assertXmlFileEqualsXmlFile()
assertXmlStringEqualsXmlFile()
assertXmlStringEqualsXmlString()
Funciones de PHPUnit
class Unicorns() {
private $count = 8;
public function getCount() {
return $this->count;
}
public function steal($num) {
if ($num < $this->count) {
throw new Exception('Not enough unicorns to steal');
}
$this->count -= $num;
}
}Funciones de PHPUnit
class UnicornsTest extends PHPUnit_Framework_TestCase() {
/**
* @expectedException Exception
* @expectedExceptionMessage Not enough unicorns to steal
*/
public function test_cant_steal() {
$unicorns = Unicorns();
$unicorns->steal(1000);
}
}PHPUnit 3.4.0 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 0.5Mb
OK (1 tests, 1 assertions)Funciones de PHPUnit
Son decorators especiales para clases y funciones.
Sirven sobre todo para darle información adicional