Los mejores programadores cometen errores. La diferencia entre buenos y malos programadores es que los buenos programadores pueden encontrar tantos errores como sea posible mediante las pruebas. Cuanto más rápido pruebes los errores, más rápido los encontrarás y más barato será encontrarlos y corregirlos. Esto explica por qué probar el software justo antes de su lanzamiento es tan problemático. La mayoría de los errores nunca se encuentran, y la corrección de los errores encontrados es tan alta que debe priorizar la corrección solo de esos errores porque simplemente no puede permitirse el lujo de solucionarlos todos.
Probar con PHPUnit no es completamente diferente al enfoque que estás utilizando. Simplemente tienen diferentes métodos. La diferencia entre ambos es que comprobar si el programa se comporta correctamente se realiza mediante un lote de fragmentos de código que se pueden probar automáticamente. Estos fragmentos de código se denominan pruebas unitarias. En esta parte, primero realizamos pruebas automáticas basadas en el código de prueba impreso. Supongamos que queremos probar la matriz incorporada de PHP Array. Una de las pruebas que se deben realizar es la función sizeof(). La función sizeof() debe devolver 0 para cualquier matriz recién creada. Cuando agregamos un nuevo miembro de la matriz, sizeof() debería devolver 1. El ejemplo 1 muestra lo que queremos probar.
Ejemplo 1. Matriz de prueba y tamaño de()
<?php
$accesorio = Matriz( );
// $fixture debe estar vacío.
$accesorio[] = "elemento";
// $fixture debe contener un miembro de la matriz.
?>
El método de prueba más simple es imprimir los resultados de la operación de sizeof() antes y después de agregar miembros de la matriz. Si se devuelven 0 y 1, significa que Array y sizeof() están funcionando normalmente.
Ejemplo 2. Utilice declaraciones impresas para probar Array y sizeof()
<?php
$accesorio = Matriz( );
imprimir tamaño de($dispositivo) "n";
$dispositivo[] = "elemento";
imprimir tamaño de ($accesorio) "n";
?>
0
1
Ahora, pasamos el programa de prueba de requerir interpretación manual a ejecutarlo automáticamente. En el Ejemplo 3, comparamos el valor esperado con el valor real e imprimimos ok si son iguales. Si encontramos que algunos resultados no son correctos, sabemos que hay un problema.
Ejemplo 3. Compare los valores esperados y reales de Array y sizeof()
<?php
$accesorio = Matriz( );
print sizeof($accesorio) == 0 ? "okn" : "no está bienn";
$accesorio[] = "elemento";
imprimir tamaño de($accesorio) == 1 ? "okn" : "no está bienn";
?>
DE ACUERDO
Bien,
ahora introducimos un nuevo elemento, si el valor esperado es diferente del valor real, lanzamos una excepción. De esta forma nuestra salida es más sencilla. Si la prueba tiene éxito, no se hace nada; si hay una excepción no controlada, sabemos que algo anda mal.
Ejemplo 4. Uso de funciones de aserción para probar Array y sizeof()
<?php
$accesorio = Matriz( );
afirmarTrue(sizeof($accesorio) = = 0
$accesorio[] = "elemento";
afirmarVerdadero(tamañode($accesorio) = = 1);
función afirmarVerdadero($condición) {
si (!$condición) {
lanzar una nueva excepción ("La afirmación falló.");
}
}
?>
Ahora la prueba está completamente automatizada. A diferencia de nuestra primera versión, esta versión hace que las pruebas sean completamente automatizadas.
El objetivo de utilizar pruebas automatizadas es cometer la menor cantidad de errores posible. Aunque su código aún no es perfecto, con buenas pruebas automatizadas descubrirá que los errores se reducirán significativamente. Las pruebas automatizadas le brindan la confianza de que su código es justo. Con esta confianza, puede dar pasos audaces en el diseño, asociarse mejor con su equipo, mejorar las relaciones entre usted y sus clientes y dormir tranquilo todos los días porque puede demostrar que el sistema es mejor gracias a sus esfuerzos.