2016-03-24 28 views
1

私はLaravel 5.1から5.2にアップグレードしましたが、これまで成功したテストは「おそらく例外がスローされましたか?テスト自体からの実際の応答をログLaravel 5.2模擬ファイルアップロードユニットテストに失敗しました

There were 3 failures: 

1) TRP\Nps\Tests\FileHandlerControllerTest::testCSVFileUploadImportsRecipients 
Invalid JSON was returned from the route. Perhaps an exception was thrown? 

/home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:354 
/home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:316 
/home/vagrant/Code/nps/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:255 
/home/vagrant/Code/nps/tests/FileHandlerControllerTest.php:56 

、私は以下を参照してください。

UploadedFile.phpライン235: ファイル "FileHandlerCSV.csv"。不明なエラーのためアップロードされませんでした。

これはあまり役に立ちません。次のように私のmockFileUpload方法は次のとおりです。

/** 
* Mock a file upload 
*/ 
public function mockFileUpload($fullPathToFile, $type = null, $errorCode = 0) 
{ 
    $fs = new Filesystem(); 

    // Copy the "upload" to a temp file 
    $tmpFile = tempnam(sys_get_temp_dir(), "testupload"); 
    $fs->copy($fullPathToFile, $tmpFile); 

    // If we haven't been given it, find the Mime type of a file 
    if (!$type) { 
     $type = $fs->mimeType($fullPathToFile); 
    } 

    return new UploadedFile(
     $tmpFile, 
     $fs->name($fullPathToFile) . '.' . $fs->extension($fullPathToFile), 
     $type, 
     $fs->size($tmpFile), 
     $errorCode, 
     true // $test 
    ); 
} 

し、エラーを返すシンフォニーの方法(役に立たないも...)

/** 
* Returns an informative upload error message. 
* 
* @return string The error message regarding the specified error code 
*/ 
public function getErrorMessage() 
{ 
    static $errors = array(
     UPLOAD_ERR_INI_SIZE => 'The file "%s" exceeds your upload_max_filesize ini directive (limit is %d KiB).', 
     UPLOAD_ERR_FORM_SIZE => 'The file "%s" exceeds the upload limit defined in your form.', 
     UPLOAD_ERR_PARTIAL => 'The file "%s" was only partially uploaded.', 
     UPLOAD_ERR_NO_FILE => 'No file was uploaded.', 
     UPLOAD_ERR_CANT_WRITE => 'The file "%s" could not be written on disk.', 
     UPLOAD_ERR_NO_TMP_DIR => 'File could not be uploaded: missing temporary directory.', 
     UPLOAD_ERR_EXTENSION => 'File upload was stopped by a PHP extension.', 
    ); 

    $errorCode = $this->error; 
    $maxFilesize = $errorCode === UPLOAD_ERR_INI_SIZE ? self::getMaxFilesize()/1024 : 0; 
    $message = isset($errors[$errorCode]) ? $errors[$errorCode] : 'The file "%s" was not uploaded due to an unknown error.'; 

    return sprintf($message, $this->getClientOriginalName(), $maxFilesize); 
} 

私は、ファイルが/ tmpに/

であることが確認されました
-rw------- 1 vagrant vagrant 88 Mar 24 08:53 testuploadA4K2MA 

私は両方の読み取り/書き込みが有効になっていることを確認しました。それはどれですか。私はphpunitが失敗している理由について完全に混乱していますか?誰もこれの前にこのような何かを見ましたか?たぶん、どうぞ! :)

答えて

関連する問題