Si vous construisez une application volumineuse et que vous n'avez pas une équipe capable d'écrire du code découplé qui peut être testé avec des tests de boîte noire et qui est prêt à utiliser/déboguer beaucoup de mocks & talons, ne descendez pas la route de l'usine. Où que vous lisiez sur la façon dont les usines impressionnantes sont, vous verrez une petite mise en garde sur la façon dont les usines pourraient ne pas être réalisables dans une grande application, car ils sont un peu plus lent que les appareils.
Mais "un peu plus lent" est vraiment plus lent.
Les usines ne sont pas significativement plus faciles à coder que les appareils qui utilisent des étiquettes pour les ID, à condition que vous conserviez les appareils organisés. Et dans certains cas, les usines sont plus difficiles à déboguer.Ce soir, j'ai converti une seule usine en fixtures, et le temps d'exécution du fichier de test qui l'a utilisée est passé de 65 secondes à 15 secondes, même si seulement 15% des tests de ce fichier test utilisent cette usine.
Si vous utilisez minitest, vous pouvez exécuter vos tests dans un ordre aléatoire; cela révélera rapidement tout couplage de données entre les tests. (pas sûr si rspec a l'option de randomiser l'ordre de test)
Je suis totalement d'accord avec le webmat. J'ai vraiment du mal à comprendre la syntaxe de RSpec parce qu'elle a tellement de sucre syntaxique. Il transforme les phrases ordinaires en code, mais alors vous avez compris ce qu'il est censé faire! La courbe est raide et je suis paresseux. – srboisvert
J'avais l'habitude d'être un peu méfiant de la syntaxe sucrée, mais après avoir lu http://rdoc.info/gems/rspec-expectations/2.4.0/RSpec/Matchers, je n'ai en fait aucun problème à écrire mes assertions avec La syntaxe de RSpec. (Peut-être que la documentation s'est simplement améliorée dans la période 2.5y depuis votre réponse. ^^) En fait, j'aime beaucoup mieux les attentes de RSpec que les affirmations de Test :: Unit (et cela sans se soucier de la "lisibilité anglaise" -)fonctionnalité). –