Ce package est un ensemble d'outils qui facilitent certaines tâches de tests unitaires.
JoomlaTestTestHelper
est une classe d'assistance statique qui peut être utilisée pour simplifier les tâches répétitives lors des tests unitaires avec PHPUnit.
Il existe deux méthodes qui aident avec les objets fictifs PHPUnit.
TestHelper::assignMockCallbacks
Cette méthode d'assistance fournit un moyen simple de configurer des rappels fictifs en masse.
utilisez JoomlaTestTestHelper ; la classe FooTest étend PHPUnit_Framework_TestCase { fonction publique testFoo() { // Créez le mock.$mockFoo = $this->getMock( 'Foo', // Méthodes array.array(), // Constructeur arguments.array(), // Nom de la classe Mock.'', // Appel constructeur d'origine.false ); $mockCallbacks = array( // 'Nom de la méthode' => <callback>'method1' => array('mockFoo', 'method1'), 'method2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); } fonction publique mockMethod2($value) { return strtolower($valeur); } }
TestHelper::assignMockReturns
Cette méthode d'assistance fournit un moyen simple de configurer des valeurs de retour fictives en masse.
utilisez JoomlaTestTestHelper ; la classe FooTest étend PHPUnit_Framework_TestCase { fonction publique testFoo() { // Créez le mock.$mockFoo = $this->getMock( 'Foo', // Méthodes array.array(), // Constructeur arguments.array(), // Nom de la classe Mock.'', // Appel constructeur d'origine.false ); $mockReturns = array( // 'Nom de la méthode' => 'Valeur de retour prédéfinie''method1' => 'résultat standard 1', 'method2' => 'résultat standard 2', 'method3' => 'résultat standard 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
Il existe trois méthodes qui aident à la réflexion.
TestHelper::getValue
La méthode TestHelper::getValue
vous permet d'obtenir la valeur de toute propriété protégée ou privée.
utilisez JoomlaTestTestHelper ; la classe FooTest étend PHPUnit_Framework_TestCase { fonction publique testFoo() { $instance = nouveau Foo ; // Récupère la valeur d'une propriété `bar` protégée.$value = TestHelper::getValue($instance, 'bar'); } }
Cette méthode doit être utilisée avec parcimonie. Il est généralement plus approprié d'utiliser les méthodes assertAttribute*
de PHPunit.
TestHelper::setValue
La méthode TestHelper::setValue
vous permet de définir la valeur de toute propriété protégée ou privée.
utilisez JoomlaTestTestHelper ; la classe FooTest étend PHPUnit_Framework_TestCase { fonction publique testFoo() { $instance = nouveau Foo ; // Définit la valeur d'une propriété `bar` protégée. TestHelper::setValue($instance, 'bar', 'Nouvelle valeur'); } }
Cette méthode est utile pour injecter des valeurs dans un objet dans le but de tester les méthodes getter.
TestHelper::invoke
La méthode TestHelper::invoke
vous permet d'invoquer n'importe quelle méthode protégée ou privée. Après avoir spécifié l'objet et le nom de la méthode, tous les arguments restants sont transmis à la méthode invoquée.
utilisez JoomlaTestTestHelper ; la classe FooTest étend PHPUnit_Framework_TestCase { fonction publique testFoo() { $instance = nouveau Foo ; // Invoque la méthode protégée `bar`.$value1 = TestHelper::invoke($instance, 'bar'); // Invoque la méthode protégée `bar` avec des arguments.$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
Ajoutez "joomla/test": "~2.0"
au bloc require dans votre composer.json, puis exécutez composer install
.
{ "require": { "joomla/test": "~2.0" } }
Alternativement, vous pouvez simplement exécuter ce qui suit à partir de la ligne de commande :
le compositeur nécessite Joomla/test "~2.0"