Загрузчик форм модульного тестирования PHP с вводом потока - PullRequest
2 голосов
/ 05 декабря 2011

Я занят кодированием юнит-теста для загрузчика файлов 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: // доступен только для чтения

1 Ответ

2 голосов
/ 05 декабря 2011

Вы можете заключить fopen("php://input", "r"); в свой пользовательский класс / метод и затем смоделировать его с помощью тестового класса / метода.

...