Shoes change de pompes 2

Publié par Yannick Francois Mar 19 août 2008 08:07:00 GMT

Le micro framework graphique initié par _Why Shoes a un nouveau site dédié: http://shoooes.net/

Un petit rappel également pour le très intessant The Shoebox qui est une gallerie d’application Shoes.

On en reparlera plus tard ;-)

Ruby : Test Unitaire 5

Publié par Yannick Francois Ven 15 août 2008 12:41:00 GMT

Ruby bénéficie comme beaucoup d’autres langages modernes de son framework de test. Voici donc une petite documentation sur comment écrire un test unitaire pour Ruby.

Pour ceux qui ne savent pas ce qu’est un test unitaire, je vous renvoie sur l’article Test Unitaire [wikipedia]

Pour commencer il nous faut importer la librairie “Test::Unit”

require "test/unit" 

Rien que cela nous permet déjà de faire un premier test en executant notre script.

yannick@libellule:~/Code/RubyFrance/testUnit $ ruby testUnit.rb
Loaded suite testUnit
Started

Finished in 0.000607 seconds.

0 test, 0 assertions, 0 failures, 0 errors

Le fait d’inclure la librairie de test unitaire permet d’avoir un comportement par défaut qui va:

  • Charger la suite de test à executer
  • lancer les tests
  • faire l’affichage des resultats de test
  • faire un compte rendu de cette execution

Ajoutons un test maintenant

require "test/unit" 

class StringTest < Test::Unit::TestCase
  def test_length
    s = "Bon test à tous !" 
    assert_equal(17, s.length)
  end
end

Nous avons défini une classe, celle-ci doit étendre TestCase. Cela permet au framework de test de s’y retrouver. Chaque méthode de test définie ensuite doit contenir test en début de nom (le caractère _ n’est placé que pour une meilleur lisibilité et selon les conventions couramment appliquées en Ruby)

Les méthodes assert (ici assert_equal, mais il en existe beaucoup d’autres) permettent d’effectuer un test. Ici un test d’égalité, mais nous pourrions également vérifié une différence, un bouléen répondant vrai ou faux et d’autres encore (voir la documentation sur le module Test::Unit::Assertions).

Après execution, voici le résultat:

yannick@libellule:~/Code/RubyFrance/testUnit $ ruby testUnit.rb
Loaded suite testUnit
Started
.
Finished in 0.000802 seconds.

1 test, 1 assertions, 0 failures, 0 errors

Un test a été executé avec succès.

Ajoutons encore un test pour avancer:

require "test/unit" 

class StringTest < Test::Unit::TestCase
  def test_length
    s = "Bon test à tous !" 
    assert_equal(17, s.length)
  end
  def test_expression_substitution
    assert_equal("", "#{'ah! ' * 3}")
  end
end

Après exécution nous obtenons:

yannick@libellule:~/Code/RubyFrance/testUnit $ ruby testUnit.rb
Loaded suite testUnit
Started
F.
Finished in 0.000827 seconds.

  1) Failure:
test_expression_substitution(StringTest) [testUnit.rb:12]:
<""> expectedbut was
<"ah! ah! ah! ">.
2 test, 2 assertions, 1 failures, 0 errors

Et voilà, comme vous l’aviez deviné, nous avons une erreur. Dans notre cas, l’erreur viens de notre test.

On vois ici l’interêt de mettre chaque test sur un domaine différent dans une méthode différente: on vois facilement quel type de test nous voulions effectuer. Dans le développement d’une application complète, avec plusieurs dizaines d’objets à tester, et plusieurs dizaines de méthodes sur chacun d’eux, les erreurs d’exécution de test peuvent devenir un vrai casse-tête.

Effectuons la correction:

require "test/unit" 

class StringTest < Test::Unit::TestCase
  def test_length
    s = "Bon test à tous !" 
    assert_equal(17, s.length)
  end
  def test_expression_substitution
    assert_equal("ah! ah! ah! ", "#{'ah! ' * 3}")
  end
end

exécution du test:

yannick@libellule:~/Code/RubyFrance/testUnit $ ruby testUnit.rb
Loaded suite testUnit
Started
..
Finished in 0.001273 seconds.

2 test, 2 assertions, 0 failures, 0 errors

Et voilà. Vous devriez être capables de commencer à écrire quelques tests, mais ce n’est qu’un début !.

Cet article a été écrit pour le site de l’association RubyFrance, vous pourrez le retrouver dans les documentations proposées par l’association: RubyFrance: TestUnitaire

Typo Upgrade

Publié par Yannick Francois Ven 01 août 2008 19:51:00 GMT

Ce blog tourne maintenant avec la version 5.1.2 du moteur de blog Typo (également appeler typoesphere). Comme d’habitude, du bon boulot.

Bravo à l’équipe ! Merci Cartier Bresson !

L’annonce officiel: Typo 5.1 Cartier Bresson is out

Et pour compléter ce billet, je tiens à vous signaler/rappeler que l’équipe de Typo à mis en place Redmine un gestionnaire de projet écrit en RubyOnRails et que vous pouvez trouver tout plein de thème dans le jardin de typo.

D’autres nouveauté devrait arriver d’ici le 15 aout dans les parrages…

Jruby 1.1.3

Publié par Yannick Francois Jeu 17 juil 2008 09:49:00 GMT

Jruby vous connaissez ? C’est l’implémentation Java du langage de programmation Ruby. Une implémentation qui à mon avis séduit ou séduira la plus part des entreprise ayant déjà une infrastructure basé sur la technologie Java.

Et bien cette semaine, c’est la dernière ligne droite, Tom a déclenché les hostilitées en annonçant la sortie d’ici la fin de semaine de la nouvelle version 1.1.3 de cette implémentation, et du coup propose à tous de signaler ce qu’ils souhaitent voir dans cette version (archives de l’annonce: JRuby 1.1.3 by end of week…Nominate problems here…. Charles Oliver Nutter a surenchéri en faisant suivre le message sur la mailing list User (The reason we’re pushing 1.1.3 now is so we can finally branch 1.1 into full maintenance mode and start hitting Java integration hard.

Les demandes pleuvent, je vous prévient un peu tard peut-être pour participer, mais essayé toujours. Au pire on fera les tests sur cette nouvelle mouture.

Fête en grande Pompe

Publié par Yannick Francois Ven 11 juil 2008 09:38:00 GMT

On connait (ou pas) ce merveilleux petit framework d’interface graphique en Ruby : Shoes (une oeuvre signé _Why encore une fois !).

2 grandes rencontres virtuelles vont avoir lieu pour partager, tester, discuter, découvrir, documenter autour de ce framework: l’une à lieu en ce moment (vendredi 11 Juillet) et l’autre aura lieu dans 2 semaines (le vendredi 25 Juillet). C’est toute la journée, ça se passe sur IRC : #shoes@freenode.net , c’est ouvert à tous: développeur, testeur, documenteur, partageur, découvreur; du framework ou bien d’application l’utilisant. Vu le coté international, ça se passe en Anglais bien sur.

Si vous ne connaissez pas Shoes, c’est peut-être le moment d’aller découvrir ce framework. D’ailleurs, c’est un évènement qui précède la prochaine grosse release qui devrait avoir lieu à la fin du mois.

L’annonce officiel de l’évènement: 7/11 & 7/25 ShoesFests with Why The Lucky Stiff L’annonce sur RubyInside: Join Why The Lucky Stiff (And Others) For an Online “ShoesFest”

Billets précédents: 1 2 3 4 ... 12