PHPUnit; Intégration de nouvelles fonctionnalités
Lorsque nous développons de nouvelles fonctionnalités dans notre code, il nous arrive de se demander si une modification viendra en briser une autre créée antérieurement. Afin de s’assurer de la stabilité de notre composante, il est impératif d’avoir un système qui nous assure que les fonctionnalités implémentées auparavant n’aient pas été supprimées. PHPUnit à la rescousse!
PHPUnit permet de tester nos blocs de code indépendamment les uns des autres. Lors de la création d’un test de fonctionnalité, nous devons donner une valeur à notre fonction. PHPUnit s’assurera que la valeur retournée par la fonction sera la valeur attendue. Plus la fonction sera étendue afin de supporter de nouveaux paramètres, plus les tests nous permettront de nous assurer qu’aucune fonctionnalité précédemment développée ne sera brisée.
Installation
Le mode d’installation à été trouvé sur PHPUnit.de. Il nous permet d’installer la version via les canaux PEAR.
Installer xdebug
Installer PHPUnit
sudo pear channel-discover pear.phpunit.de
sudo pear install –alldeps phpunit/PHPUnit
Une fois que PHPUnit est installé et fonctionnel, vous êtes prêt à créer votre premier test. Idéalement, si vous utilisez une librairie ou un framework, vous voudrez sans doute vouloir configurer vos tests afin que chacun utilise les classes de votre librairie. Pour cela, je vous suggère de vous créer une classe qui servira de « bootstrap » et qui sera appelée avant chaque test.
Voici un exemple de « bootstrap ».
setup.php
class Setup {
public static function init() {
// Root, libraries, classes and tests directories.
$root = dirname(dirname(__FILE__));
$config = $root} . ‘/config’;
$librairies = $root . ‘/libraries’;
$tests = $root . ‘/tests’;// Empêche le coverage du dossier de tests.
PHPUnit_Util_Filter::addDirectoryToFilter($tests);// Update include path.
$path = array($config, $librairies, $tests, get_include_path());
set_include_path(implode(PATH_SEPARATOR, $path));// Add files to the PHPUnit code coverage whitelist.
if (version_compare(PHPUnit_Runner_Version::id(), ’3.1.6′, ‘>=’)) {
PHPUnit_Util_Filter::addDirectoryToWhitelist($starLib);}
}
Votre classe de test
Blog.php
require_once ‘PHPUnit/Framework.php’;
//require_once dirname(__FILE__) . ‘/setup.php’;class Blog extends PHPUnit_Framework_TestCase {
public function test_failed() {
$this->assertFalse(true, ‘Ce test ne fonctionne pas’);
}
public function test_success() {
$this->assertTrue(true, ‘Ce test fonctionne’);
}
}
Une fois ces étapes réalisées, vous n’avez qu’à exécuter le fichier Blog.php pour obtenir ce résultat:
phpunit –colors Blog.php
Pour plus d’informations sur l’utilisation de PHPUnit, voir sur le site .
Bon test !















Il arrive régulièrement que nous nous posions la question de savoir quelles sont les grosses entreprises qui utilisent TYPO3. On se rend très vite compte qu’il y en a un nombre très impressionnant dès lors qu’on regarde en Allemagne; mais encore faut-il savoir parler allemand… pas comme moi!
Une extension qui fait parler beaucoup d’elle ces temps-ci est l’extension 


Après une petite recherche sur internet j’ai trouvé une façon très facile d’écraser n’importe quel contenu (stdWrap) en typoscript. Il existe déjà plusieurs possibilités avec la fonction « stdWrap » telles que la modification de la casse, supprimer les balises HTML, « wrapper » le stdWrap, etc. Comme ce n’est jamais assez, je me suis demandé s’il était possible d’utiliser du PHP à même le typoscript pour modifier le contenu du stdWrap.