Le TDD (Test Driven Development) devient de plus en plus populaire. Guider le développement d’une application par les tests est maintenant une pratique acceptée dans plusieurs communautés. Mais démarrer avec le TDD peut être une tâche ardue.
Dans cette présentation, nous allons voir ce qu’est le TDD. En commençant par les principes fondamentaux au TDD. Puis nous verrons quels sont les outils utilisés. Puis comment appliquer ces techniques dans le travail quotidien.
23. Encore de la duplication
/** @test */
public function factOf1() {
$this->assertSame(1, $this->facto->fact(1));
}
/** @test */
public function factOf2() {
$this->assertSame(2, $this->facto->fact(2));
}
27. array(3, 6,),
public function fact($number) {
if ($number < 2) return 1;
return $number * $this->fact($number - 1);
}
28. Les 3 lois du TDD selon Uncle Bob
● Ne jamais écrire du code de production sauf
pour faire passer un test unitaire qui échoue
http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
29. Les 3 lois du TDD selon Uncle Bob
● Ne jamais écrire du code de production sauf
pour faire passer un test unitaire qui échoue
● Ne pas écrire plus de test que nécéssaire
pour avoir un échec
○ une erreur de compilation est un échec
http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
30. Les 3 lois du TDD selon Uncle Bob
● Ne jamais écrire du code de production sauf
pour faire passer un test unitaire qui échoue
● Ne pas écrire plus de test que nécéssaire
pour avoir un échec
○ une erreur de compilation est un échec
● Ne pas écrire plus de code de production
que nécéssaire pour faire passer le test
unitaire
http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd
36. Vérifier la création d'un répertoire
$root = vfsStream::setup('dir');
$parentDir = $root->url('dir');
//Code qui créer un sous répertoire
$this->createDir($parentDir, 'test');
$this->assertTrue($root->hasChild('test'));
53. ● Mettre tous les appels HTTP dans une
classe
○ ZendHttp
○ Simple classe qui appel curl
● Faire un mock de cette classe
○ Retourne le xml/json voulu