J’ai un contrôleur qui est chargé d’accepter les fichiers JSON et ensuite traiter les fichiers JSON pour faire un entretien par l’utilisateur pour notre application. Dans des tests utilisateur les œuvres d’upload et de traitement de fichier, mais bien sûr je voudrais automatiser le processus d’essai de l’entretien par l’utilisateur lors de nos tests. Comment puis-je transférer un fichier vers un contrôleur dans l’infrastructure de test fonctionnel ?
Réponses
Trop de publicités?Recherché pour cette question et ne pouvait pas le trouver, ou sa réponse sur un Débordement de Pile, mais le trouve ailleurs, je vais donc me demandant de le rendre disponible sur.
Les rails de cadre a une fonction fixture_file_upload (Rails 2 Rails 3), qui sera à la recherche de vos appareils répertoire pour le fichier spécifié et le rendre disponible dans un fichier de test pour le contrôleur dans les tests fonctionnels. Pour l'utiliser:
1) Mettez votre fichier sera téléchargé dans le test de vos appareils/les fichiers de sous-répertoire pour les tests.
2) Dans votre unité de test, vous pouvez obtenir votre fichier de test en appelant fixture_file_upload('path','mime-type").
par exemple:
bulk_json = fixture_file_upload('files/bulk_bookmark.json','application/json')
3) l'appel de la méthode post pour frapper le contrôleur de l'action que vous voulez, en passant de l'objet renvoyé par fixture_file_upload en tant que paramètre pour le téléchargement.
par exemple:
post :bookmark, :bulkfile => bulk_json
Ce sera exécutée par le biais de la simulation post-traitement à l'aide d'un fichier temporaire copie du fichier dans votre répertoire fixtures, puis retour à votre unité de test de sorte que vous pouvez commencer à examiner les résultats de la poste.
Extrait du livre de Rspec, B13.0 :
Rails fournit une classe de ActionController::TestUploadedFile qui peut être utilisée pour représenter un fichier téléchargé dans le hachage params d’une spécification de contrôleur, comme ceci :
Cette spécification nécessiterait que vous possédiez une image de test_avatar.png dans le répertoire de spec/fixtures. Il serait prendre ce fichier, transférez-le sur le contrôleur et le contrôleur aurait créer et enregistrer un vrai modèle de l’utilisateur.
Vous voulez utiliser fixtures_file_upload. Vous placez votre fichier de test dans un sous-répertoire du répertoire d’installation et passez ensuite dans le chemin d’accès à fixtures_file_upload. Voici un exemple de code, à l’aide d’upload de fichier luminaire