我正忙着为AJAX文件上传器编写单元测试代码。我的保存功能的开头如下所示:
$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);
我正在尝试找到一种方法将数据填充到输入流中,以便使用适当的测试数据填充$ input。
我尝试在读取之前写入输出流,但它似乎立即输出到stdio。我在上传文件的同时用Firebug观看了控制台,以获取有关如何设置Request变量的线索,但我已经空白了。
我也试过这个:
$inStream = fopen("php://input", "w");
$input = fopen("libs/inputfile.txt", "r");
stream_copy_to_stream($input, $inStream);
但$ realSize总是返回0 - 我假设这是因为php://输入流是只读的
答案 0 :(得分:2)
您可以将fopen("php://input", "r");
包装到自定义类/方法中,然后使用测试类/方法进行模拟。