J'ai plusieurs contrôleurs déjà configurés. Maintenant, je veux commencer à écrire des tests de spécification pour eux. Y at-il une commande qui génère automatiquement les fichiers spec? Je sais que les rails le font pour de nouvelles ressources, mais je ne sais pas si c'est le cas pour les contrôleurs/modèles existants.Comment générer des spécifications pour les contrôleurs existants?
Répondre
rails g rspec:controller ControllerName
Quand il vous demande de remplacer le contrôleur existant, le type n
.
Si vous avez configuré rspec dans application.rb:
config.generators do |g|
g.test_framework :rspec
end
alors rails g controller things
fonctionnera. Ne pas écraser les fichiers au fur et à mesure qu'ils sont générés.
Tous spec ressemble quand il est généré est la suivante:
require 'spec_helper'
describe ThingsController do
it "should be successful" do
get :index
response.should be_successful
end
end
Je crée souvent les spécifications manuellement, comme il est assez trivial.
J'ai remarqué que parfois les tests générés peuvent être plus détaillés que ça. Surtout lorsque vous générez des ressources, le test contiendra du code pour toutes les méthodes REST. – picardo
Vous avez spécifiquement indiqué "contrôleurs existants" dans le titre de votre question, donc je n'ai pas remarqué que vous incluiez des modèles dans le texte. Quoi qu'il en soit, réexécuter le générateur et dire «n» quand ils demandent d'écraser le fichier du modèle ou du contrôleur répondra bien à vos besoins. :) –
Il existe deux options. Si vous voulez un fichier spec vide, vous pouvez essayer avec:
rails g rspec:controller ControllerName
Maintenant, si vous voulez un fichier de spécification avec les spécifications initiales pour un contrôleur REST de base, essayez avec:
rails g rspec:scaffold ControllerName
- 1. Générer uniquement des tests à partir de modèles/contrôleurs existants
- 2. Pourquoi rspec ne génère pas de spécifications pour les contrôleurs?
- 3. Génération de fichiers de spécifications manquants pour RSpec
- 4. Écrire des spécifications fonctionnelles pour les jeux
- 5. La meilleure façon de combiner des vues/contrôleurs existants?
- 6. Zend Framework - routes - toutes les demandes à un contrôleur à l'exception des demandes pour les contrôleurs existants
- 7. Comment comprendre les projets existants
- 8. Spécifications pour tous les téléphones Android
- 9. Spécifications pour les systèmes de fichiers DB?
- 10. Comment soumettre des suggestions aux spécifications CSS?
- 11. Réécriture d'URL pour exclure les répertoires existants
- 12. Dois-je séparer les contrôleurs API RESTful des contrôleurs "standards"?
- 13. contrer les styles existants
- 14. Perfection d'une macro RSpec pour les contrôleurs
- 15. GKPeerStateDisponible pour les homologues non existants?
- 16. Générer un diagramme de classes à partir de javadocs existants
- 17. Comment utilisez-vous les spécifications d'affichage?
- 18. Quelles sont les ressources pour apprendre à écrire les spécifications?
- 19. Comment grouper des vues partagées partielles pour des contrôleurs spécifiés?
- 20. Dépôt des spécifications BDD "standard"
- 21. Écrire spécifications des exigences iPhone?
- 22. Comment comparer les valeurs sélectionnées avec celle des rails existants
- 23. Comment générer des SMS OTA pour la configuration SyncML
- 24. Comment écraser des fichiers existants en batch?
- 25. Quelles sont les spécifications HW recommandées pour les virtualisations?
- 26. Meilleure place dans les spécifications/pour les réponses d'intégration?
- 27. Zend Framework - Comment faire pour preDispatch pour tous les contrôleurs?
- 28. Générer des horaires potentiels pour les étudiants
- 29. Comment générez-vous des tests à partir des spécifications?
- 30. créer des fonctions dans les contrôleurs CodeIgniter
Cela ne génère que la fichier spec pour le contrôleur. Si vous voulez les fichiers associés, tels que des assistants ou des usines, alors vous voulez: 'rails g controller ControllerName -s' Le -s à la fin l'amènera à ignorer tous les fichiers existants afin que vous n'ayez pas à vous soucier de la question en ce qui concerne n'importe quoi. – Blimey85
cela fonctionne aussi pour le modèle? 'rspec: modèle'? cela existe sur rspec 1? –
Est-ce que quelque chose de namespaced dans 'rspec' normalement essaie de créer un contrôleur? Ou pensez-vous à ce que font les 'rails g controllerName '? –