如何在PHP中测试PCNTL叉子类?
-
26-10-2019 - |
题
我有一个抽象的PHP类,负责执行过程分叉,并从终端脱离当前的过程,并继续担任Deamon。
我真的很想获得有关如何单元测试此类(PHPUNIT)的提示。假设在基于此摘要中实现测试中的最小插座服务器并与之进行通信?有更好的想法吗?
可以在这里看到课程: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php
谢谢!
解决方案
这里需要测试两件事:
- 如果叉子有效
- 其余的代码
测试是否可以通过在某个地方保存叉子进程的ID并查看是否仍在运行,并且可以像往常一样对其进行测试。
其他提示
正如Gphilip所说,您可以使用Runkit来模拟PCNTL_FORK()并测试代码的所有分支。这是一个例子: http://kpayne.me/2012/01/17/how-to-unit-test-fork/
不隶属于 StackOverflow