Tests unitaires ● Robots automatisés qui exécutent des contrôles ● Garants du bon fonctionnement du code source ● Indiquent : – Des anomalies de fonctionnement sont survenues – Des erreurs sont survenues – Aucune anomalie ou erreur n'est survenue ● (SimpleTest), PHPUnit, atoum
Fail : Nœuds et chemins ● Tests de AC, BD = 2 nœuds couverts = 100 % des nœuds couverts ● Je n'ai en réalité couvert que 50 % des chemins possibles ! La couverture de code est totalement bidon
Fail : les tests vides ● Les tests sont verts : class FooTest extends PHPUnit_Framework_TestCase { public function testFoo1() { $this->assertTrue(true); } }
Fail : le surmocking ● Il est nécessaire de virtualiser certains morceaux de code pour isoler un test ● Il est fréquent de virtualiser à l'excès – Les tests ne testent plus le code source, mais le code source virtuel