En travaillant sur notre nouvelle création en Ruby on Rails, je rencontre un problème lors de l’élaboration des tests. Voici la problématique : Lorsqu’un formulaire comporte la possibilité de télécharger un fichier sur le serveur comment ce processus peut-il être testé ? Réponse #1 : On ouvre le fichier normalement puis on passe le fichier dans le POST du contrôleur. Hiinn ! Mauvaise réponse ! Un fichier ouvert
de cette manière manque une propriété importante qui est original_filename, et donc votre code ne fonctionnera pas. Donc avec l’aide de Jean-Marc on effectue une recherche dans la librairie CGI qui est responsable de la gestion des fichiers envoyés par POST. Réponse #2 : Dans notre test, on dérive la classe FILE de la même manière que dans la librairie CGI, puis on passe ce nouveau type de fichier dans le POST.Hiinn ! Mauvaise réponse ! Ça fonctionne mais l’ajout de ce traitement dans notre test est assez inélégant et répète de la fonctionnalité déjà existante. Une heure plus tard d’arrachage de cheveux, Jean-Marc me lance la phrase suivante de manière désinvolte: « Sais-tu que dans ActionController il y a une classe nommée TestUploadedFile ? »
