標準入力の値をテストコードで設定する方法

仕事で単体の書き捨てスクリプトを書く必要があったので作成した。
何をやるかというと標準入力の値をログに出力するって機能。


標準入力の値は $source = file_get_contents('php://stdin'); とかで取得。
書き捨てだけど、どうせならテストコードも作りたかったから簡単なライブラリにした。
テスティングフレームワークとかは大げさだったので、 phpt 形式で作成。


で、テストコードを書いている時に標準入力ってテストコードでどうやって表現するのか分からなかった。
echo とか、 exec で Linux のコマンドを呼んだりとか色々やったんだけど、 file_get_contents('php://stdin'); では取れなかった。


phpt のドキュメントに何か書いてるかなと思い読んでみると、

--STDIN--
テストスクリプトの標準入力に与えられるデータ。(オプション)

http://bobchin.ddo.jp/download/write-test.php.html]

とあったので、 --STDIN-- に適当に値を書いてやると、あっさりテストコードから標準入力に設定できた。
他のテスティングフレームワークとかではどうやってやるのかな。


書き捨てのライブラリやスクリプトのテストコードは phpt で書くと楽だよってお話でした。