我有一个抽象的PHP类,负责做进程分叉,并从终端分离当前进程并继续作为deamon。如何在PHP中对PCNTL forker类进行单元测试?
我真的很想知道如何单元测试这个类(PHPUnit)。比方说,根据这个摘要在测试中实现一个最小套接字服务器并与之通信?任何更好的想法?
类可以在这里看到:https://github.com/tcz/PHPTracker/blob/master/lib/PHPTracker/Threading/Forker.php
谢谢!
我有一个抽象的PHP类,负责做进程分叉,并从终端分离当前进程并继续作为deamon。如何在PHP中对PCNTL forker类进行单元测试?
我真的很想知道如何单元测试这个类(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/
实际上,这将是功能测试,不是真正的单元测试,但我找到了解决方案。使用[runkit](http://es.php.net/manual/es/book.runkit.php),您可以“模拟”原生PHP功能。 – gphilip 2011-05-11 16:52:36