Dies ist ein dokumentationsorientiertes Testframework für PHP 5.3 bis 7.x. Sein Zweck besteht darin, durch Unit-Tests sicherzustellen, dass Ihre Beispielcodes funktionieren. Inspiriert durch Golang-Tests „Beispiele“.
Sehen Sie sich unten ein Beispiel an. Der erste Abschnitt ist Beispielcode, der getestet wird. Der Kommentar, der mit Output
beginnt, ist Testcode.
<?php
function hello ( string $ name ): string {
return ' hello ' . $ name ;
}
echo hello ( ' alice ' ) . "n" ;
echo hello ( ' bob ' ) . "n" ;
// Output:
// hello alice
// hello carol
Dieser Beispielcode ist fehlerhaft. Das Wort „carol“ wird als Ausgabe erwartet, erscheint jedoch nicht. Dieser Testfall schlägt fehl, aber Sie können erkennen, dass der Beispielcode ein Problem hat, und Sie können es möglicherweise beheben.
Livexample führt folgende Schritte aus:
Output
Anweisung im Beispielcode, indem Sie sie analysieren.Manchmal werden Beispielcodes beschädigt, weil neue Funktionen hinzugefügt werden, vergessen wird, sie zu aktualisieren, Pull-Requests, die Beispielcodes nicht berücksichtigen, und so weiter.
Defekte Beispielcodes sind für Bibliotheksbenutzer eine schlechte Erfahrung.
Durch die Nutzung von Livexample profitieren Sie von folgenden Vorteilen:
suin/livexample
über Composer installieren:
composer require --dev suin/livexample
Fügen Sie ExampleTest.php
zu Ihrem Testverzeichnis hinzu:
use Livexample PHPUnit ExampleTestCase ;
class ExampleTest extends ExampleTestCase
{
public function exampleFiles ()
{
// specify your example code directory.
return self :: exampleDirectory ( ' example ' );
}
}
Führen Sie phpunit aus:
phpunit
Es gibt zwei Syntaxen für die Behauptung:
// Output: {expected output}
//=> {expected output}
echo 1 ; // Output: 1
echo " hello " ; //=> hello
var_dump ([ 1 , 2 , 3 ]);
// Output:
// array(3) {
// [0] =>
// int(1)
// [1] =>
// int(2)
// [2] =>
// int(3)
// }
var_dump($object)
Die Funktion var_dump()
gibt Objektbezeichner aus, die #some-number
neben dem Klassennamen stehen. Da die Bezeichner von der Ausführungsumgebung abhängen, können Sie sie in der Output:
-Anweisung nicht fest codieren. Anstatt den Bezeichner fest zu codieren, können Sie einen Platzhalter %d
für die Zahl verwenden:
<?php
var_dump ( new stdClass );
// Output:
// object(stdClass)#%d (0) {
// }
php
-Befehl aus php -d auto_prepend_file=vendor/autoload.php
-d xdebug.overload_var_dump=0
example/simple-usage.php
Die offizielle Unterstützung für PHP 5.3 ist beendet, RHEL/CentOS unterstützt PHP 5.3 jedoch auch im Jahr 2017 weiterhin. Die alten PHP-Umgebungen bleiben auch heute noch im laufenden Dienst. Livexample soll auch für das Refactoring solcher alten Umgebungen verwendet werden.
Weitere Einzelheiten finden Sie im CHANGELOG.
Weitere Einzelheiten finden Sie unter BEITRAGEN. Bitte korrigieren Sie mein Englisch.