環境
PHP 7.1.9
Lumen 5.5
やりたいこと
「php://input」を使用したソースをユニットテストしたい時に事前に「php://input」に任意の投入しておく方法などありますでしょうか。
やりたいこととしては、以下のように「php://input」を受け取ってパラメータを設定している箇所があるので
テスト実行前に「php://input」に事前にデータが入っているようにしたいです。
class A_Controller { public function __construct() { $this->setParams(); } public function get() { // データ取得処理 } public function setParams() { $param = fiLe_get_contents(php://input); $this->params = json_decode($param, true); ・・・ } }
ちなみにphpunit側では以下のようにテストを実施したいと考えております。
class Test_A_Controller extends \TestCase public function testGet() { // php://inputにjsonを代入する処理 $this->call('GET', '/A/get'); //第二引数のパスでA_Controllerのget()にアクセスする $expected = '・・・' $this->assertEquals($expected, $this->response->getContent()); }
もしも「php://input」に設定する方法がなさそうであれば「setParams」をオーバーライドしたテストクラスをnewしてテストしようかと思うのですが、
できればcallを使用したテストを実施したいです。
おそれいりますがご存知の方教えていただけますと幸いです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/04 04:41