Cette section est close pour le moment.
Mais je n'arrête pas la veille, loin de là. Retrouvez mes projets sur Github et sur cette page qui sera à jour plus régulierement


Ressources

Définition de ressource : (nom féminin) Qui peut fournir ce dont on a besoin.
Vous l'aurez compris, sur cette page ce ne sont pas vraiment des tutoriels, c'est plutôt des penses-bêtes plus ou moins fournis mais qui vous permettront d'avoir des bases concernant la programmation.
Recherche par tag

Comment contrôler son code plus facilement avec PHPUnit

Comment contrôler son code plus facilement avec PHPUnit
Publication : Le 21/08/2013 à 09:45:19

Introduction

Le principe du test unitaire est simple : écrire dans un fichier les résultats attendus concernant le fonctionnement d'une fonction.
Ainsi, vous pourrez faire évoluer vos fonctions et vérifier si les résultats attendus sont toujours bons.

Pour débuter

Vous allez avoir besoin d'utiliser le système PEAR et de l'installer sur votre serveur local, ainsi, il sera accessible sur tous vos projets.
Ensuite, soit vous êtes à l'aise avec les lignes de commandes, soit vous installez VisualPHPUnit (que l'on verra plus tard).

Prenons un exemple

Dans une class, je veux savoir si un chien est dangereux.
<?php
class Conditions{

	public function isDogDangerous($dog){
		$dogs = array('Labrador', 'Boxer', 'Rottweiler');
		if(in_array($dog, $dogs)){
			return true;
		}
		return false;
	}
?>
Pour créer nos tests nous allons créer un fichier ConditionsTest.php. Il faut bien penser à respecter la norme de PHPUnit, c'est à dire, d'ajouter Test au nom du fichier que l'on veut tester.

Dans ce fichier, nous créons une classe ConditionsTest et l'étendre à PHPUnit_Framework_TestCase.

Nous allons ensuite écrire la fonction setUp(), qui va être chargée au lancement des tests, nous allons donc pouvoir inclure le fichier à tester.
<?php 
	class ConditionsTest extends PHPUnit_Framework_TestCase{

		public function setUp(){
			require_once 'Conditions.php';
		}
	}
?>

Passons à l'écriture des tests

PHPUnit vous propose plein de fonctions pour tester les fonctions.
Dans le premier exemple nous verrons assertTrue et assertFalse qui comme vous l'aurez deviné, va renvoyer true ou ... false. (L'autre fonction très utilisée est assertEquals qui vérifie si la donnée est égale à ce qui est attendu)

Nous allons donc ajouter 2 fonctions, pour vérifier le bon et le mauvais fonctionnement du test.
public function testIsDogDangerous(){
	$this->assertTrue(Conditions::isDogDangerous('Labrador'));
	$this->assertTrue(Conditions::isDogDangerous('Boxer'));
}
public function testIsNotDogDangerous(){
	$this->assertFalse(Conditions::isDogDangerous('Chihuahua'));
}
C'est simple non?, on demande met en paramètre dans $this->assertTrue() la fonction à tester, dans ce cas, isDogDangerous issue de la classe Conditions avec le chien testé.

Dans le cas d'un assertEquals, on aurait mis 2 paramètres, la valeur attendue et le résultat envoyé.

Et maintenant, on test

Deux solutions s'offrent à vous.

- Tester en ligne de commande (il faut avoir paramétré ce fonctionnement avant, de nombreux tutos expliquent comment)
- Tester avec une interface graphique, par exemple VisualPHPUnit

En ligne de commande de lancer le fichier avec phpunit :
phpunit ConditionsTest.php
Pas à l'aise avec les lignes de commande? Vous pouvez utiliser VisualPHPUnit.
Il vous faudra installer ces codes depuis le compte Github de NSinopoli.
Une fois le dossier mis dans votre répertoire de travail, et configuré selon les recommandations de l'auteur, vous pourrez accéder graphiquement aux tests.

Conclusion

Plus d'excuse pour avoir une fonction qui plante après une mise à jour ! L'utilisation de PHPUnit n'est pas indispensable, mais est très pratique.

Sur le même thème

Comment contrôler son code plus facilement avec PHPUnit
Publication : Le 21/08/2013 à 09:45:19

Tags

Tag : PHP

Suggestion :

Forcer le téléchargement d'un fichier

Forcer le téléchargement d'un fichier