Este es un marco de prueba orientado a la documentación desde PHP 5.3 a 7.x. Su propósito es garantizar que sus códigos de ejemplo funcionen mediante pruebas unitarias. Inspirado en los "Ejemplos" de prueba de Golang.
Vea un ejemplo a continuación. La primera sección es un código de ejemplo que se probará. El comentario que comienza con Output
es código de prueba.
<?php
function hello ( string $ name ): string {
return ' hello ' . $ name ;
}
echo hello ( ' alice ' ) . "n" ;
echo hello ( ' bob ' ) . "n" ;
// Output:
// hello alice
// hello carol
Este código de ejemplo está roto. Se espera que aparezca la palabra "villancico", sin embargo, no aparece. Este caso de prueba falla, pero puede saber que el código de ejemplo tiene un problema y puede solucionarlo.
Livexample sigue los siguientes pasos:
Output
en el código de ejemplo analizándola.A veces, los códigos de ejemplo se rompen al agregar nuevas funciones, olvidarse de actualizarlas, solicitudes de extracción que no se ocupan de los códigos de ejemplo, etc.
Los códigos de ejemplo rotos son una mala experiencia para los usuarios de la biblioteca.
Al utilizar Livexample, obtendrás beneficios:
Instale suin/livexample
a través de Composer:
composer require --dev suin/livexample
Agregue ExampleTest.php
a su directorio de pruebas:
use Livexample PHPUnit ExampleTestCase ;
class ExampleTest extends ExampleTestCase
{
public function exampleFiles ()
{
// specify your example code directory.
return self :: exampleDirectory ( ' example ' );
}
}
Ejecute phpunit:
phpunit
Hay dos sintaxis para la afirmación:
// 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)
La función var_dump()
imprime identificadores de objetos, que son #some-number
al lado del nombre de la clase. Dado que los identificadores dependen del entorno de ejecución, no puede codificarlos en la instrucción Output:
:. En lugar de codificar el identificador, puede utilizar un marcador de posición %d
para el número:
<?php
var_dump ( new stdClass );
// Output:
// object(stdClass)#%d (0) {
// }
php
php -d auto_prepend_file=vendor/autoload.php
-d xdebug.overload_var_dump=0
example/simple-usage.php
El soporte oficial para PHP 5.3 ha finalizado; sin embargo, RHEL/CentOS sigue admitiendo PHP 5.3 incluso en 2017. Los antiguos entornos PHP aún permanecen en el servicio en ejecución hoy. También se supone que Livexample se utiliza para refactorizar entornos antiguos.
Consulte CHANGELOG para obtener más detalles.
Consulte CONTRIBUCIÓN para obtener más detalles. Por favor arregla mi inglés.