PHPでPCNTLフォーカークラスをユニットテストする方法は?
-
26-10-2019 - |
質問
プロセスフォークを実行し、現在のプロセスをターミナルから切り離し、Deamonとして継続する抽象的なPHPクラスがあります。
このクラス(phpunit)のユニットテスト方法についてのヒントを本当に知りたいと思います。この要約に基づいてテストに最小ソケットサーバーを実装し、それと通信したとしますか?より良いアイデアはありますか?
クラスはここで見ることができます: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php
ありがとうございました!
解決
ここでテストする必要がある2つのことがあります。
- フォーキングが機能する場合
- 残りのコード
フォークが機能したかどうかのテストは、どこかでフォークプロセスのIDを保存して、まだ実行されているかどうかを確認し、クラスの残りの部分をフォーキングなしで通常どおりテストできます。
他のヒント
Gphilipが言ったように、runkitを使用してpcntl_fork()をmockし、コードのすべてのブランチをテストできます。これが例です: http://kpayne.me/2012/01/17/how-to-unit-test-fork/
所属していません StackOverflow