PHPPRO

PHP Professionnel pour les entreprises

Aller au contenu | Aller au menu | Aller à la recherche

Introduction sur les Tests Unitaires - Support de Formation

Demain je donnerai une formation sous forme de Dojo sur le refactoring par les tests d'une application métier chez un de mes clients. Voici mon support de formation pour la première partie de la matinée sur le rappel théorique sur les tests unitaires.

Lire la suite...

Interface ArrayAccess : où des objets que l'on utilise comme des array

Cette semaine j'ai fait découvrir l'interface ArrayAccess à un des développeurs Parisiens que je coache.
Cette fonctionnalité lui a permis d'appréhender facilement les tests unitaires sur du code legacy, je reviens sur cette "expérience"

Lire la suite...

Complémentarité PHPUnderControl / Phing

Suite à une demande d'un internaute, j'explique la complémentarité entre PHPUnderControl et Phing

Lire la suite...

Capitaliser, Améliorer et Rationnaliser les développements PHP en interne

Je vous livre ici un document de travail anonymisé sur la présentation d'un outil que je développe pour un client pour cadrer les pratiques de développements, ainsi que les enjeux et la démarche à adopter en interne.

Lire la suite...

Incompatibilité Phing 2.3.3 et PHPUnit 3.4.x+

Phing, le port de Ant (java) en PHP, propose des tasks (balises xml) permettant d'exécuter des classes PHPUnit (tests unitaires en PHP). La version stable de Phing n'est maintenant plus compatible avec la dernière version stable de PHPUnit (3.4.3 actuellement) voir avec la branche 3.4.x, et on obtient l'erreur :

[PHP Error] require_once(PHPUnit/Util/Log/XML.php): failed to open stream: No such file or directory [line 22 of C:\Program Files\PHP\PEAR\phing\tasks\ext\phpunit\phpunit3\XMLPHPUnit3ResultFormatter.php]

Voici une piste pour y remédier :

Lire la suite...

Session "Oui ! PHP est industriel !" au forum PHP 2009 @Paris

Le forum PHP 2009 de Paris s'est déroulé la semaine dernière, je vous livre le support de session que nous avons utilisé avec Damien Seguy à l'occasion de la présentation de notre session sur l'industrialisation en PHP.

Lire la suite...

PHP : Une plateforme industrialisable au service de l'Agilité

Je publie sur slideshare une version refactorée d'une présentation draft que j'avais réalisé il y a quelques mois pour l'Université du S.I avant de préférer avec Damien Seguy une version plus light... Au programme, PHP et Agilité, encore et toujours ;)

Lire la suite...

Test unitaire: comment bouchonner ?

L'exécution d'un test unitaire nécessite en règle générale la mise en place de bouchon (mock en anglais) qui permettent de simuler les appels systèmes ou d'api sous jacent.
En effet, il peut être difficile de tester une partie de votre code qui a des impacts sur le système externe (enregistrement sur disque, appels réseaux / webservices, stockage mémoire vive, appels base de données...), le principe du bouchon est alors bien pratique pour tester la logique sans déclencher toutes les opérations.

Lire la suite...

Tests d'intégration, quézako ?

Les tests unitaires c'est bien, mais ce n'est pas suffisant, surtout quand on a besoin de tester que notre application s'intègre effectivement bien avec un webservice d'un de nos fournisseurs... Parlons de tests d'intégration, donc.

Lire la suite...

Tests Unitaires : ma philosophie via un exemple

Je vois souvent des tests dit unitaires chez mes clients, mais qui se connectent à la base de données, font des requêtes réseaux...
Voici une petite présentation de ce que personnellement j'appelle tests unitaires, par l'exemple.

Lire la suite...

Les fichiers de contextes : où comment utiliser la même appli sur le web, les tests unitaires, fonctionnels, la ligne de commande, ...

Votre application peut être exécutée via :

* un navigateur (web)
* une ligne de commande (batch)
* PHPUnit (tests unitaires ou tests d'intégration)
* GreenPepper / Fitnesse (tests fonctionnels)
* ...

Lire la suite...

AgileTour 2009 @ Bordeaux : 3 sessions proposées

Cette année l'AgileTour passe à Bordeaux le 29 Octobre, l'occasion pour moi de proposer quelques sujets de sessions...

Lire la suite...

Intégration PHPUnit dans Eclipse

Une nouvelle intégration de PHPUnit 3.x dans Eclipse à la mode JUnit

Lire la suite...

"Injectabilité / Mockabilité" : Un indicateur simple de la qualité de votre design de code

On parle souvent d'indicateur de qualité de code avec nombre de tests unitaires qui passent au vert, nombre d'erreurs détectées pour le non respect des standards, nombre de lignes de code...
Tous ces indicateurs donnent une information intéressante sur la qualité du code mais pas sur la qualité de l'architecture ou design du code, c'est à dire aucune évaluation de la conception de votre code.

Lire la suite...

Constuire une librairie "maison" : ou comment capitaliser à moyen terme

Vous avez déjà développé des dizaines de milliers de ligne de code.
Vous avez déjà contribué à plusieurs (2, 5, 10 ...) projets d'applications PHP dans votre entreprise.
Vous avez déjà, comme moi, eu ce sentiment quand vous étiez sur le développement d'un morceau de code, que vous aviez déjà codé cela une fois, mais impossible de vous souvenir "comment" et "où" retrouver le code.
"Ah, si j'avais un listing bien organisé de tout ce que j'ai codé rangé par fonctionnalité..."

Lire la suite...

Tests unitaires et Exception : attention aux try/catch !

Les tests unitaires, pour ceux qui les utilisent, sont bien pratiques pour tester notre code. Malheureusement ils peuvent introduire, si ils sont rédigés de façon maladroite des problèmes qui peuvent être compliqués à comprendre a posteriori. Imaginons le code suivant (volontairement) mal codé : ...

Lire la suite...