我有一个抽象的 PHP 类,负责执行进程分叉,并将当前进程与终端分离并继续作为守护进程。
我真的很想获得有关如何对此类(PHPUnit)进行单元测试的提示。假设基于这个抽象在测试中实现一个最小的套接字服务器并与之通信?有更好的想法吗?
该类可以在这里看到:https ://github.com/tcz/PHPTracker/blob/master/lib/PHPTracker/Threading/Forker.php
谢谢!
我有一个抽象的 PHP 类,负责执行进程分叉,并将当前进程与终端分离并继续作为守护进程。
我真的很想获得有关如何对此类(PHPUnit)进行单元测试的提示。假设基于这个抽象在测试中实现一个最小的套接字服务器并与之通信?有更好的想法吗?
该类可以在这里看到:https ://github.com/tcz/PHPTracker/blob/master/lib/PHPTracker/Threading/Forker.php
谢谢!
正如 gphilip 所说,您可以使用 runkit 来模拟 pcntl_fork() 并测试所有代码分支。这是一个例子: http: //kpayne.me/2012/01/17/how-to-unit-test-fork/
这里有两点需要测试:
可以通过将分叉进程的 ID 保存在某处并查看它是否仍在运行来测试分叉是否工作,并且可以像往常一样测试类的其余部分而无需分叉。