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