Secondo la documentazione, SimpleTest has support for FileUpload testing baked in since version 1.0.1:
File upload testing Can simulate the input type file tag 1.0.1
Ho guardato negli esempi al loro sito e potrebbe supporre usereste qualcosa sulla falsariga di
$this->get('http://www.example.com/');
$this->setField('filename', 'local path');
$this->click('Go');
per inviare il file e quindi utilizzare le asserzioni regolari per verificare che il caricamento funzioni come desiderato. Ma questa è solo un'ipotesi, dato che non ho familiarità con SimpleTest e non sono riuscito a trovare un esempio nella loro homepage. Si potrebbe desiderare di ask in their support forum though.
Ma in fondo, non c'è molto di test uso che una forma di caricare un file. Questo è un comportamento del browser provato e testato. Testare il codice che gestisce il caricamento ha più senso. Non so come hai implementato il tuo codice FileUpload, ma se dovessi implementarlo, mi libererei della dipendenza dall'array $_FILES
come prima cosa. Creare una classe FileRequest
in cui passare l'array $_FILES
. Quindi puoi gestire il caricamento dalla classe. Ciò consentirebbe di testare la funzionalità senza effettivamente caricare un file. Basta configurare l'istanza di FileRequest di conseguenza. Potresti persino prendere in giro il filesystem con vfsStreamWrapper, quindi non hai nemmeno bisogno di file reali.
Puoi mostrare uno snippet di codice? – Jhn
L'ampliamento di questa risposta con il modo di prendere in giro lo spostamento di file in move_uploaded_file sarebbe molto utile. –
@pixelastic Qualche possibilità che potresti mostrarci il tuo codice per questo? – Magiranu