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 ? »
![https_ideogram_ai_api_images_ephemeral_HQ_q8p8R4WVcUhGuVQESw_png_exp_1725380742_sig_c64bc5538d75eee18dcd8329790c57ec15022f828a4fc0e55aabb0a94d15e32b https_ideogram_ai_api_images_ephemeral_HQ_q8p8R4WVcUhGuVQESw_png_exp_1725380742_sig_c64bc5538d75eee18dcd8329790c57ec15022f828a4fc0e55aabb0a94d15e32b](https://m2i3.com/wp-content/uploads/2024/09/https_ideogram_ai_api_images_ephemeral_HQ_q8p8R4WVcUhGuVQESw_png_exp_1725380742_sig_c64bc5538d75eee18dcd8329790c57ec15022f828a4fc0e55aabb0a94d15e32b.png)