【问题标题】:PHP unit testing form uploader with stream input带有流输入的 PHP 单元测试表单上传器
【发布时间】:2011-12-05 16:10:40
【问题描述】:

我正忙于为 AJAX 文件上传器编写单元测试。我的保存功能的开头如下所示:

$input = fopen("php://input", "r");
$temp = tmpfile();
$realSize = stream_copy_to_stream($input, $temp);
fclose($input);

我正在尝试找到一种将数据填充到输入流中的方法,以便 $input 填充适当的测试数据。

我尝试在读取之前写入输出流,但它似乎立即输出到 stdio。我在上传文件以获取有关如何设置请求变量的线索时使用 Firebug 观看了控制台,但我遇到了空白。

我也试过这个:

 $inStream = fopen("php://input", "w");
 $input = fopen("libs/inputfile.txt", "r");
 stream_copy_to_stream($input, $inStream);

但 $realSize 总是返回 0 - 我假设这是因为 php://input 流是只读的

【问题讨论】:

    标签: php ajax unit-testing file-upload


    【解决方案1】:

    您可以将fopen("php://input", "r"); 包装到您的自定义类/方法中,然后使用测试类/方法对其进行模拟。

    【讨论】:

      猜你喜欢
      • 2010-11-09
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 2012-05-09
      • 2011-05-07
      相关资源
      最近更新 更多