2011-12-05 40 views
2

我正忙於爲AJAX文件上傳器編寫單元測試。我保存功能的開頭是這樣的:帶有流輸入的PHP單元測試表格上傳器

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

我試圖找到一種方法,使$輸入填充了適當的測試數據來充填數據到輸入流中。

我試過在讀取之前寫入輸出流,但它似乎立即輸出到stdio。我用Firebug觀看了控制檯,同時上傳文件以獲取有關如何設置請求變量的線索,但我一直留有空白。

我也試過這樣:

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

但$ realSize總是返回0 - 我假設這是因爲PHP://輸入流是隻讀

回答

2

你可以用fopen("php://input", "r");成你的自定義類/方法,然後用測試類/方法來模擬它。