tutorial readthedocs example español descargar composer php phpunit

readthedocs - phpunit tutorial español



PHPUnit equalTo en fechas con delta (1)

Tengo un problema en PHPUnit donde me gustaría usar el parámetro delta en el método equalTo al comparar fechas. Digamos que quiero tratar las fechas como iguales si difieren en no más de 10 segundos. ¿Cuál sería el valor apropiado de $ some_delta? 10? 10000? ¿O algo totalmente diferente?

$this->_restClient->expects($this->at(0)) ->method(''getData'') ->with( $this->equalTo(array(''1'')), $this->equalTo(array(''2'')), $this->equalTo($this->_date, $some_delta), $this->equalTo(null), ) ->will($this->returnValue($this->_restResponses[''generalRestResponse'']));


Los valores delta solo necesitan ser el número de segundos

Necesita los segundos en que las marcas de tiempo pueden diferir como el 4th parameter to assert equals o, en su caso, el 2nd to equalTo . Ambas funciones ( assertEquals / equalTo ) apuntan a PHPUnit_Framework_Constraint_IsEqual por lo que el manejo delta es el mismo.

Muestra:

<?php class foo extends PHPUnit_Framework_TestCase { public function testDateDiffsWorks() { $date1 = new DateTime(''2011-01-01 00:00:00''); $date2 = new DateTime(''2011-01-01 00:00:03''); $this->assertEquals($date1->getTimestamp(), $date2->getTimestamp(), '''', 5); } public function testDateDiffsFails() { $date1 = new DateTime(''2011-01-01 00:00:00''); $date2 = new DateTime(''2011-01-01 00:00:03''); $this->assertEquals($date1->getTimestamp(), $date2->getTimestamp(), '''', 0.5); } }

Y la salida

La primera prueba funciona la segunda falla.

phpunit test.php PHPUnit 3.5.14 by Sebastian Bergmann. .F Time: 0 seconds, Memory: 6.00Mb There was 1 failure: 1) foo::testDateDiffsFails Failed asserting that <integer:1293836403> matches expected <integer:1293836400>. /home/edo/test.php:16