Je crée des gemmes qui peuvent être utilisées dans les contrôleurs et les vues Rails. J'aimerais pouvoir tester les gemmes indépendamment. Mais je n'ai pas été capable de comprendre comment créer une instance de Rails à l'intérieur de la gemme pour tester que la gemme fonctionnera dans une application Rails.Test des gemmes ruby sous les rails
Je préfère fortement utiliser RSpec, mais je pourrais probablement adapter une solution Test :: Unit, ou simplement utiliser Test :: Unit.
Je serais également intéressé par des solutions similaires pour les plugins Rails.
(J'ai essayé Google, mais "rails gem testing" me montre des gemmes qui sont utilisées pour tester, pas comment tester une gemme.Je suis sûr que j'ai vu un article ou 2 sur ce sujet.)
C'était très utile; Merci! Existe-t-il un moyen de conserver ActiveRecord chargé (ala spec_server ou spork) afin que le chargement d'ActiveRecord et la création de la base de données à chaque fois ne ralentissent pas tellement mes tests? – Chinasaur
Je suis sûr qu'il y a un moyen de le faire. Si vous utilisez le stockage de fichiers sqlite3, au lieu de stockage de mémoire comme mes plugins validations en direct utilise, vous pouvez vérifier si le fichier de base de données .sqlite3 existe et ne pas exécuter les migrations si c'est le cas. –
Cela a très bien fonctionné pour moi, juste quelques notes: 1) J'ai dû ajouter mon framework de test (rspec) et sqlite3 en tant que dépendances de développement dans mon gemspec (et bien sûr les rails en tant que dépendance d'exécution), 2) Nécessité d'exiger 'rails' & 'active_record' dans mon assistant de test bien –