Wie kann ich die PCNTL -Forker -Klasse in PHP einstellen?
-
26-10-2019 - |
Frage
Ich habe eine abstrakte PHP -Klasse, die für Prozessgabeln verantwortlich ist und den aktuellen Prozess vom Terminal abschließt und als Deamon weitergeht.
Ich möchte wirklich Tipps zum Testen dieser Klasse (Phpunit) erhalten. Implementieren wir einen minimalen Socket -Server im Test, der auf dieser Zusammenfassung und Kommunikation damit basiert? Gibt es bessere Ideen?
Die Klasse ist hier zu sehen: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php
Vielen Dank!
Lösung
Es gibt zwei Dinge, die hier getestet werden müssen:
- Wenn Gabern funktioniert
- Der Rest des Code
Das Testen, ob die Gabel funktioniert, kann durch Speichern der ID des Forked -Prozesses irgendwo und festgestellt werden, ob sie noch läuft, und der Rest der Klasse kann wie gewohnt ohne Gabel getestet werden.
Andere Tipps
Wie GPhilip sagte, können Sie Runkit verwenden, um pcntl_fork () zu verspotten und alle Codezweige zu testen. Hier ist ein Beispiel: http://kpayne.me/2012/01/17/how-to-unit-test-fork/