42 votes

Rspec et TestUnit

Je commence la phase de planification de la création d'une suite de tests pour mon application Rails 3.0.8. J'essaie de décider quel framework de test utiliser. Normalement, je préfère m'en tenir autant que possible à la convention Rails. Cependant, cela signifie utiliser TestUnit. Il existe de nombreux cadres de test concurrents qui ont été créés comme une alternative à TestUnit. TestUnit s'est-il amélioré au fil des ans ou n'est-il pas un très bon concurrent ?

J'ai également entendu beaucoup de bien de rspec. Les fonctionnalités de rspec et de TestUnit sont-elles proches, ou bien rspec surpasse-t-il TestUnit ?

Quel que soit le cadre que je choisirai, je préférerais qu'il bénéficie d'une bonne base de soutien (beaucoup d'utilisateurs et de documentation), qu'il soit facile à utiliser/simplicité et qu'il ait un avenir durable.

37voto

bor1s Points 3155

Test::Unit et Rspec sont tous deux de très bonnes solutions. Pour ma part, je préfère utiliser RSpec dans mon projet Rails - parce qu'il possède de nombreuses solutions automatiques comme l'autotest, la mise en évidence de la syntaxe, les commandes de raccourci comme rake spec et d'autres choses qui rendent l'utilisation du test plus facile. Mais dans mes scripts ruby ordinaires, j'utilise Test::Unit - il est très léger et simple d'utilisation lorsque vous n'avez pas besoin de tests complexes (intégration et autres).

14voto

gertas Points 7113

La réponse est une question de goût, utilisez les deux dans un projet et trouvez vous-même ce que vous préférez. (Je fais Test::Unit, RSpec a trop de sucre pour moi).

Mise à jour 2014 : Comme Ruby 2.x a MiniTest intégré, je vous suggère de vérifier MiniTest::Spec éventuellement qui est une simple extension BDD. Vous pouvez mélanger les blocs "describe" et "it" pour structurer joliment les contextes de test. Il fournit également des correspondances "must_be " si vous voulez plus qu'un simple test. assert .

8voto

makaroni4 Points 1436

Je préfère et utilise ces gemmes pour les tests

  • Rspec
  • Faker (pour créer des données aléatoires et appropriées pour la base de données)
  • Fabrication (pour la création d'instances simples)

Pour commencer avec rspec, jetez un coup d'œil à cette présentation. Elle contient tous les exemples nécessaires :

http://kerryb.github.com/iprug-rspec-presentation

Lisez également ces articles sur rspec :

http://relishapp.com/rspec/rspec-rails

6voto

sampablokuper Points 1286

Cet article de Ruby Inside En particulier si vous suivez les liens et lisez les commentaires, vous trouverez une discussion approfondie sur les mérites relatifs de Test::Unit et de RSpec. L'un des principaux facteurs de différenciation semble être le suivant :

  • les personnes qui ont des clients non techniques sont plus susceptibles de considérer RSpec et Cucumber plus favorablement ;
  • autres sont plus susceptibles de préférer des systèmes plus directs comme Test::Unit.

Voir aussi cette partie du tutoriel Rails de Michael Hartl pour une comparaison de RSpec et Cucumber.

4voto

wael34218 Points 1441

Vous pourriez utiliser rspec con cucumber y webrat des joyaux qui constituent une excellente combinaison, si vous avez un grand site web. Ce sera lourd au début, mais plus tard, ce sera un énorme avantage.

Vous pouvez regarder les épisodes suivants de Railcasts pour avoir plus d'informations sur ces joyaux :
155 Commencer par le concombre
156 Webrat
157 Correspondants et macros RSpec
159 Plus sur le concombre

Il y a aussi d'autres joyaux comme capybara qui est relativement nouveau et prometteur, mais honnêtement je ne l'ai pas essayé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X