June 22, 2011
Laurent Laffont
20ème coding-dojo: reload countdown kata
Avec enthousiasme nous sommes retournés au randori avec le Reload countdown kata, Serge avec nous depuis Hà Nội.
Je n'en dis pas plus, tout est dans la vidéo.
Nous pensons refaire le kata la prochaine fois:
- en commençant par le Gun
- en utilisant TeamViewer pour que Serge puisse coder
by Laurent Laffont at June 22, 2011 06:46 AM
June 16, 2011
Laurent Laffont
19ème coding-dojo: nouveaux mondes
Pour ce dojo nous avons travaillé de nouveau sur TWM. On peut maintenant ajouter de nouveaux mondes, un peu comme les bureaux virtuels sous Linux ou Spaces sous OSX.
Baptiste est venu en tant qu'observateur.
Une vidéo du résultat
by Laurent Laffont at June 16, 2011 06:47 AM
June 04, 2011
Laurent Laffont
18ème coding-dojo: Strategy Pattern autour du monde
Coding-dojo trés sympa: d'une part nous avons travaillé sur TWM (gestionnaire de fenêtres pour Pharo), d'autre part Serge Stinckwich a participé depuis Hà Nội (Vietnam) via Skype ! (c'est beau Internet)
L'objectif du dojo était d'implémenter des politiques différentes de placement des fenêtres pour TWM - cas idéal pour placer un Strategy Pattern, le tout en TDD évidemment.
by Laurent Laffont at June 04, 2011 04:58 PM
May 17, 2011
Laurent Laffont
17ème coding-dojo: techniques de test
Aujourd'hui nous avons étudié plusieurs techniques de test sur du code legacy, basé sur notre Picasa Kata.
La difficulté est de faire en sorte qu'il n'y ait pas d'accès réel aux web services Picasa pour les tests.
Tout d'abord nous avons isolé le code qui faisait appel aux web services:
PicasaAPI>>httpGet: aQuery
^ HTTPSocket httpGet: aQueryEnsuite plusieurs techniques ont été mises en oeuvre:
- Créer une sous-classe TestingPicasaAPI qui redéfinit #httpGet: pour les tests
- Ecrire notre propre Mock de HTTPSocket (MockHTTPSocket) qui va ếtre injecté dans l'objet PicasaAPI via des accesseur
- Variante, créer une classe anonyme:
testSearch2DSKReturn2Photos
| photos httpSocketClass|
httpSocketClass := Class new
class compile: 'httpGet: aQuery
^ PicasaAPITest new xmlTwoDSK';
yourself.
photos := PicasaAPI new
HTTPSocketClass: httpSocketClass;
get: 'http://picasaweb.google.com/data/feed/api/all?q=DSK&max-results=2'.
self assert: 2 equals: photos size.- Remplacer la méthode HTTPSocket>>#httpGet: par un wrapper (partial mocking) juste pour le test
testSearch10MilesDavisReturn10Photos
| photos redirection |
[redirection := MethodRedirection new
on: (PicasaAPI >> #httpGet:)
do: [:arguments|
self
assert: 'http://picasaweb.google.com/data/feed/api/all?q=miles+davis&max-results=10'
equals: arguments first.
self xmlTenMilesDavis].
photos := PicasaAPI new get: 'http://picasaweb.google.com/data/feed/api/all?q=miles+davis&max-results=10'.
self assert: 10 equals: photos size.
] ensure: [redirection uninstall].Le "code movie":
Pour récupérer le code source:
Gofer it
squeaksource: 'DojoAnnecy';
package: 'TestingTechniques';
load
by Laurent Laffont at May 17, 2011 09:21 PM
April 30, 2011
Laurent Laffont
16eme coding-dojo: Hapao et couverture de tests
Nous avons analysé et amélioré la couverture des tests sur ProfStef en utilisant Hapao. Alexandre Bergel, développeur principal sur Hapao, s'est même joint à nous du Chili via Skype pour qu'on puisse faire des retours sur l'utilisation d'Hapao.
Du coup on aimerait développer cette expérience de coding-dojo avec des intervenants connectés via Skype, à méditer.
by Laurent Laffont at April 30, 2011 01:08 PM
April 14, 2011
Laurent Laffont
15ème coding-dojo: Themes et MetacelloBrowser
Patrick nous a expliqué comment fonctionne les thèmes dans Pharo. Il est l'auteur des thèmes Sandcastles.
L'objectif du dojo était de créer une configuration Metacello pour ces thèmes - petit rappel: Metacello permet de décrire les dépendances entre packages, à l'instar de ce qu'est apt pour les paquets .deb sous Debian.
Pour cela nous avons utilisé le tout nouveau MetacelloBrowser qui est chargeable dans Pharo 1.2 comme ceci:
Gofer new
squeaksource: 'MetacelloBrowser';
package: 'ConfigurationOfMetacelloBrowser';
load.
puis:
(ConfigurationOfMetacelloBrowser project version: #stable) load.
Ceci fait vous trouverez une nouvelle entrée Metacello dans le menu principal > Tools.
Le code movie:
by Laurent Laffont at April 14, 2011 06:47 AM
April 11, 2011
Laurent Laffont
14eme coding-dojo: encore des mocks, mais HTTPSocket
Meilleure utilisation Mocketry avec HTTPSocket. Vidéo à l'appui.
by Laurent Laffont at April 11, 2011 08:59 AM
April 04, 2011
Laurent Laffont
13eme coding-dojo: élevage de mocks
Pas de coding-dojo Mardi 22 Mars bien que nous nous soyons retrouvés au Gallice pour travailler sur un portage de SeasideHosting sur Pharo.
Mardi 28 Mars nous sommes repartis sur les Mocks mais en nous enlisant un peu: Patrick est allé expliquer à un développeur de jeux vidéos qui prenait son café ce qu'on faisait, laissant Romain et Laurent sur des questions existentialistes sur l'interface de la classe Url.
Conclusion: c'est plus facile de "mocker" HTTPSocket>>httpGet: que la classe Url.
Peut être un troisième coding-dojo sur ce sujet en vue ?
by Laurent Laffont at April 04, 2011 05:09 PM
March 16, 2011
Laurent Laffont
12ème coding-dojo: Picasa et Mocks
L'objectif du Dojo était de développer quelques classes permettant de consommer les web services Picasa avec Pharo.
Pour éviter les requêtes pendant les tests, nous avons utilisé les Mocks de Mocketry.
Nous remettons ça la semaine prochaine !
Le code:
Gofer it
squeaksource: 'DojoAnnecy';
package: 'PicasaRandori';
load
Et la vidéo:
by Laurent Laffont at March 16, 2011 08:48 PM
March 09, 2011
Laurent Laffont
11ème coding-dojo: Tennis Kata (le retour)
Nous avons repris le Tennis Kata mais en expérimentant une autre approche: un TestCase est un contexte (ex: score 30-0) et les TestCase sous-classes sont des branches dans le scénario.
TennisGameStartTest
TennisZeroFifteenTest
TennisZeroThirtyTest
TennisThirtyFourtyTest
TennisPlayerTwoWinFirstGameTest
TennisThirtyZeroTest
TennisPlayerOneWinFirstGameTestUn assert par méthode de test.
Cela nous a permis d'avancer pas à pas en créant un arbre des possibilités bien visualisé dans le browser Pharo.
Pour récupérer le code:
Gofer it
squeaksource: 'DojoAnnecy';
version: 'TennisKata-Laurent.1';
load.
Et nous avons filmé le dojo:
by Laurent Laffont at March 09, 2011 06:31 AM
March 01, 2011
Laurent Laffont
10ème coding-dojo: Tennis Kata
10ème coding-dojo fêté avec une Clairette ramenée par Patrick pour un Tennis Kata de compétition :)
Cette fois-ci nous avons tourné toutes les 5mn tel que Miguel Moquillon nous le conseillait lors du dojo à PharoConf... et c'est bien mieux.
Nous nous sommes fait plaisir avec un refactoring pas forcément évident effectué progressivement sans casser les tests: remplacement du score courant d'un entier par une Stack.
Nous avons des idées pour l'écriture des contextes de test que nous essayerons la prochaine fois.
Le résultat est comme à l'accoutumée sur SqueakSource:
Gofer it
squeaksource: 'DojoAnnecy';
package: 'TennisKata';
load.
by Laurent Laffont at March 01, 2011 09:48 PM