Dieses Paket ist eine Sammlung von Tools, die einige Aufgaben des Unit-Tests erleichtern.
JoomlaTestTestHelper
ist eine statische Hilfsklasse, die verwendet werden kann, um sich wiederholende Aufgaben beim Unit-Testen mit PHPUnit zu entlasten.
Es gibt zwei Methoden, die bei PHPUnit-Mock-Objekten hilfreich sind.
TestHelper::assignMockCallbacks
Diese Hilfsmethode bietet eine einfache Möglichkeit, Scheinrückrufe in großen Mengen zu konfigurieren.
Verwenden Sie JoomlaTestTestHelper; die Klasse FooTest erweitert PHPUnit_Framework_TestCase { öffentliche Funktion testFoo() { // Erstelle den Mock.$mockFoo = $this->getMock( 'Foo', // Methoden array.array(), // Konstruktorargumente.array(), // Name der Mock-Klasse.'', // Aufruf ursprünglicher Konstruktor.false ); $mockCallbacks = array( // 'Method Name' => <callback>'method1' => array('mockFoo', 'method1'), 'method2' => array($this, 'mockMethod2'), ); TestHelper::assignMockCallbacks($mockFoo, $this, $mockCallbacks); } öffentliche Funktion mockMethod2($value) { return strtolower($value); } }
TestHelper::assignMockReturns
Diese Hilfsmethode bietet eine einfache Möglichkeit, Scheinrückgabewerte in großen Mengen zu konfigurieren.
Verwenden Sie JoomlaTestTestHelper; die Klasse FooTest erweitert PHPUnit_Framework_TestCase { öffentliche Funktion testFoo() { // Erstelle den Mock.$mockFoo = $this->getMock( 'Foo', // Methoden array.array(), // Konstruktorargumente.array(), // Name der Mock-Klasse.'', // Aufruf ursprünglicher Konstruktor.false ); $mockReturns = array( // 'Methodenname' => 'Vorgefertigter Rückgabewert''method1' => 'vorgefertigtes Ergebnis 1', 'method2' => 'vorgefertigtes Ergebnis 2', 'method3' => 'vorgefertigtes Ergebnis 3' , ); TestHelper::assignMockReturns($mockFoo, $this, $mockReturns); } }
Es gibt drei Methoden, die bei der Reflexion helfen.
TestHelper::getValue
Mit der TestHelper::getValue
-Methode können Sie den Wert einer geschützten oder privaten Eigenschaft ermitteln.
Verwenden Sie JoomlaTestTestHelper; die Klasse FooTest erweitert PHPUnit_Framework_TestCase { öffentliche Funktion testFoo() { $instance = new Foo; // Den Wert einer geschützten „bar“-Eigenschaft abrufen.$value = TestHelper::getValue($instance, 'bar'); } }
Diese Methode sollte sparsam eingesetzt werden. Normalerweise ist es sinnvoller, assertAttribute*
Methoden von PHPunit zu verwenden.
TestHelper::setValue
Mit der TestHelper::setValue
-Methode können Sie den Wert einer beliebigen geschützten oder privaten Eigenschaft festlegen.
Verwenden Sie JoomlaTestTestHelper; die Klasse FooTest erweitert PHPUnit_Framework_TestCase { öffentliche Funktion testFoo() { $instance = new Foo; // Den Wert einer geschützten „bar“-Eigenschaft festlegen. TestHelper::setValue($instance, 'bar', 'New Value'); } }
Diese Methode eignet sich zum Einfügen von Werten in ein Objekt zum Testen von Getter-Methoden.
TestHelper::invoke
Mit der TestHelper::invoke
-Methode können Sie jede geschützte oder private Methode aufrufen. Nach Angabe des Objekts und des Methodennamens werden alle verbleibenden Argumente an die aufgerufene Methode übergeben.
Verwenden Sie JoomlaTestTestHelper; die Klasse FooTest erweitert PHPUnit_Framework_TestCase { öffentliche Funktion testFoo() { $instance = new Foo; // Die geschützte „bar“-Methode aufrufen.$value1 = TestHelper::invoke($instance, 'bar'); // Die geschützte „bar“-Methode mit Argumenten aufrufen.$value2 = TestHelper::invoke($instance, 'bar', 'arg1', 'arg2'); } }
Fügen Sie "joomla/test": "~2.0"
zum Anforderungsblock in Ihrer Composer.json hinzu und führen Sie dann composer install
aus.
{ "require": { "joomla/test": "~2.0" } }
Alternativ können Sie einfach Folgendes über die Befehlszeile ausführen:
Composer benötigt Joomla/Test „~2.0“