Come eseguire correttamente il test di caricamento del file di Phpunit ECOMDEV con $ _FILES?
-
29-09-2020 - |
Domanda
Voglio testare la funzione di caricamento del file nel mio modulo, ma ho bloccato con la limitazione di is_uploaded_file e spostamento_uploaded_file su cli.
Cercando di emulare le azioni dei file di caricamento degli utenti elaborando l'array di custom $ _files array:
class Company_Module_Test_Helper_CompanyHelperTests extends EcomDev_PHPUnit_Test_Case {
public function uploadProductImagesTest() {
...
$this->assertTrue(file_exists($testFile));
$this->assertTrue(is_readable($testFile));
$_FILES = array(
...
);
$this->mockSession('customer/session');
$this->customerSession($fixtureCustomerId);
...
.
Ma quando debug, vedo che mossa_uploaded_file in Varien_file_uploader -> _ MoveFile () Funzione restituisce false.
Ho trovato la soluzione per utilizzare lo spazio dei nomi personalizzato e sovrascrivere la funzione Move_uploaded_file e la funzione is_uploaded_file, ma quando ho provato ad aggiungere spazio dei nomi personalizzato nella classe di test il test non funzionerà:
namespace CustomTest;
class Company_Module_Test_Helper_CompanyHelperTests extends \EcomDev_PHPUnit_Test_Case {
...
}
.
Hai bisogno di qualche consiglio in questo caso, forse è possibile in qualche modo?Grazie
Soluzione
Non effettuare operazioni effettuate dei file nei test, derisione Varien_File_Uploader
invece.Per essere in grado di farlo, creerei un metodo getUploader()
in un aiutante.Quindi deridono questo metodo dell'Alper utilizzando la funzionalità di sostituzione di ECOMDev_phPUnit per far ritornare il caroload del deriso.