¿Cómo probar la clase PCNTL Forks en PHP?
-
26-10-2019 - |
Pregunta
Tengo una clase de PHP abstracta que es responsable de hacer horquillas de proceso y también separar el proceso actual desde el terminal y continuar como Deamon.
Realmente me gustaría obtener consejos sobre cómo probar esta clase (phpunit). Supongamos que implementar un servidor de socket mínimo en la prueba basado en este resumen y comunicarse con eso. ¿Alguna mejor idea?
La clase se puede ver aquí: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php
¡Gracias!
Solución
Hay dos cosas que deben probarse aquí:
- Si el bifurcado funciona
- El resto del código
Pruebas Si la bifurcación funcionada se puede hacer guardando la ID del proceso bifurcado en algún lugar y ver si todavía se está ejecutando, y el resto de la clase se puede probar como de costumbre sin bifurcar.
Otros consejos
Como dijo Gphilip, puede usar Runkit para simular PCNTL_FORK () y probar todas las ramas del código. Aquí hay un ejemplo: http://kpayne.me/2012/01/17/how-to-unit-test-fork/