2010-08-03 22 views
6

Im un débutant quand il s'agit de TDD et BDD.Quelle est la relation entre TDD et BDD dans Rails 3?

Voici ce que je sais:

Pour utiliser TDD dans Rails, je l'utilise est intégré UNIT-, tests fonctionnels et d'intégration.

Pour utiliser BDD dans les rails, j'utilise le concombre.

Alors, est-ce que ces deux techniques différentes ne devraient pas être utilisées ensemble?

Si j'utilise TDD, alors je ne devrais pas utiliser BBD/Cucumber et vice versa?

S'il vous plaît éclairer moi sur ce sujet.

Merci

Répondre

8

Non pas que je suis un génie à cela, mais voici mon humble réponse. Le concombre est idéal pour décrire le comportement de votre site, en intégrant les solutions d'affaires et le code ensemble et en développant le site correctement. Ensuite, une fois cette opération terminée, vous créez des Rspecs pour tester la façon dont les données sont stockées dans votre MVC. Rspec est idéal pour les modèles.

Il m'a été recommandé d'utiliser Factory-Girl pour tester les contrôleurs. En conclusion, l'utilisation de tout ceci fournit une série très complète de tests pour s'assurer que vos solutions d'affaires sont d'abord rencontrées, et ensuite que votre architecture peut supporter les nombreux angles qui peuvent être testés avec rspec et factory-girl.

+3

Je suis d'accord que l'utilisation de RSpec/Concombre est une bonne idée. Personnellement, j'apprends à me limiter aux tests du modèle RSpec, juste parce que les spécifications Controller/View sont relativement infernales à écrire, et le concombre couvre une grande partie de ce terrain. – Karl

0

J'ai trouvé qu'obtenir le bon mélange de quoi et quand était la partie la plus difficile, étant donné qu'il ya souvent beaucoup d'informations sur le net. Un bon billet de blog est Outside in BDD qui vous emmène dans un voyage d'essai en utilisant le concombre et RSpec. L'auteur, Sarah Mei, explique le flux qu'un développeur entreprendrait d'utiliser BDD/TDD et souligne certaines mises en garde sur les contrôleurs de test, les modèles et les vues. J'ai tendance à être d'accord que Rspec est bon pour les modèles, d'autant plus quand vous avez un comportement personnalisé qui est au-delà de ce que Rails vous donne hors de la boîte. Cela sort dans le RSpec & livres de concombre, c'est juste que cela prend un moment pour trouver cette gemme d'informations sur le test de quoi, quand et pourquoi!