Come eseguire correttamente il test di caricamento del file di Phpunit ECOMDEV con $ _FILES?

magento.stackexchange https://magento.stackexchange.com/questions/108024

  •  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

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top