Articles tagués test unitaire

Sortie de coco version 0.7.1 – Couverture de code pour Ruby

La version 0.7.1 de coco vient de sortir. Cette nouvelle version supprime quelques bugs mineurs.

Le site web est ici : home page.

Le projet est sur Github.

C’est quoi une couverture de code ?

En anglais «code coverage», la couverture de code est une mesure de la qualité de vos tests. La couverture de code décrit le pourcentage de code applicatif réellement/effectivement testé.

Coco ?

Coco est un outil de couverture de code pour Ruby 1.9.2, 1.9.3 et 2.0.0. Il s’insère dans votre framework de test (rspec ou test/unit) et vous indique, sur la console ou dans un rapport html, les endroits où votre code applicatif n’est pas testé.

À bientôt.

Publicités

, , , ,

Poster un commentaire

Refactoring: un exemple simple en Ruby

Bonjour,

Récemment, on m’a demandé « A quoi ça sert, le refactoring ? ». À cette question, ma réponse est toujours la même :

Une ligne de code, je l’écrit une fois, mais je la lit des dizaines de fois. Et peut-être que d’autres personnes la liront à leur tour des dizaines de fois. La logique veut donc qu’on juge la qualité d’un code à sa lecture.

Cet article est le premier d’une série consacrée au refactoring. Je prendrais des exemples concrets, tirés (ou adaptés) d’applications réelles et je montrerais comment en améliorer la lisibilité. La série ne sera pas centrée uniquement sur le langage Ruby. Il pourra y avoir de temps à autre des exemples en Java, Python, Php, etc.

L’exemple d’aujourd’hui est une classe très simple, qui explore la ligne de commande pour trouver quelle commande l’utilisateur souhaite lancer. Il est tiré de yabu, un utilitaire de sauvegarde pour linux.
Voici la classe CommandParser telle qu’elle existait:

Lire la suite »

, , ,

3 Commentaires

Coco, code coverage pour ruby 1.9

Un matin, je part à la recherche d’un outil de couverture de test pour un nouveau projet. Celui que j’utilise habituellement, Rcov ne fonctionne pas avec la version 1.9 de Ruby,  et son développement semble au point mort depuis quelques mois.

Je trouve rapidement plusieurs projets prometteurs, basé sur le fameux post de Aaron Patterson, mais aucun d’entre eux ne me satisfait totalement.

Ça y est, je suis énervé ! J’ai passé une demi-journée sur un truc qui aurait du prendre 5 minutes, et je n’ai toujours rien. Je décide donc d’écrire moi-même un outil de code coverage… On fait parfois des trucs bizarres sous le coup de l’énervement. Et une fois l’énervement dissipé, il faut se justifier, si possible avec une certaine dose de mauvaise foi :

  • Ruby 1.9 prend en charge la plus grosse partie du travail, l’outil se résumera à peu près à faire du rapport
  • Je pense que ça peut être fait rapidement (après tout, on parle de Ruby !)
  • Enfin, argument ultime, ça fait des années que je rêve de voir un outil de code coverage baptisé coco (et oui, ça me fait rire)

Lire la suite »

, ,

Poster un commentaire

Comment tester une méthode privée en Ruby

Les tests unitaires, c’est nécessaire. Mais jusqu’où faut-il aller ?
Voici ce que je pense du test des méthodes privées :

  1. Tester toutes les méthodes privées serait, au mieux, une énorme perte de temps.
  2. Tester une méthode privée par ci, par là peut vraiment simplifier la vie.

Alors, comment faire ? Avec Ruby il y a plusieurs solutions. La seule dont je me sert a été trouvé sur le blog de Jason Rudolph.
Je vous livre ci-dessous une traduction française, plus quelques brèves explications pour les débutants.

Lire la suite »

, , , , , ,

Poster un commentaire