質問

プロセスフォークを実行し、現在のプロセスをターミナルから切り離し、Deamonとして継続する抽象的なPHPクラスがあります。

このクラス(phpunit)のユニットテスト方法についてのヒントを本当に知りたいと思います。この要約に基づいてテストに最小ソケットサーバーを実装し、それと通信したとしますか?より良いアイデアはありますか?

クラスはここで見ることができます: https://github.com/tcz/phptracker/blob/master/lib/phptracker/threading/forker.php

ありがとうございました!

役に立ちましたか?

解決

ここでテストする必要がある2つのことがあります。

  1. フォーキングが機能する場合
  2. 残りのコード

フォークが機能したかどうかのテストは、どこかでフォークプロセスのIDを保存して、まだ実行されているかどうかを確認し、クラスの残りの部分をフォーキングなしで通常どおりテストできます。

他のヒント

Gphilipが言ったように、runkitを使用してpcntl_fork()をmockし、コードのすべてのブランチをテストできます。これが例です: http://kpayne.me/2012/01/17/how-to-unit-test-fork/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top