Saltar al contenido

¿Puedo “simular” el tiempo en PHPUnit?

Solución:

Recientemente se me ocurrió otra solución que es excelente si está utilizando espacios de nombres PHP 5.3. Puede implementar una nueva función time () dentro de su espacio de nombres actual y crear un recurso compartido donde establece el valor de retorno en sus pruebas. Entonces, cualquier llamada no calificada a time () usará su nueva función.

Para leer más, lo describí en detalle en mi blog.

Para aquellos de ustedes que trabajan con Symfony (> = 2.8): El puente PHPUnit de Symfony incluye una función ClockMock que anula los métodos integrados. time, microtime, sleep y usleep.

Ver: http://symfony.com/doc/2.8/components/phpunit_bridge.html#clock-mocking

Descargo de responsabilidad: escribí esta biblioteca.

Puede simular tiempo para la prueba usando Clock de ouzo-goodies.

En código, use simplemente:

$time = Clock::now();

Luego en las pruebas:

Clock::freeze('2014-01-07 12:34');
$result = Class::getCurrDate();
$this->assertEquals('2014-01-07', $result);
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *