Iniciar un proyecto utilizando PHP Unit es un proceso emocionante que te permitirá explorar las capacidades de prueba en el contexto del desarrollo orientado a objetos. En este proyecto, comprenderás mejor no solo el uso de PHP Unit como tecnología, sino también el concepto de clases heredadas. A continuación, encontrarás un resumen de los pasos para configurar tu entorno y comenzar el testeo de tu aplicación en PHP.
¿Cómo configurar el archivo Composer?
Para arrancar, necesitas configurar el archivo Composer, que te ayudará a gestionar las dependencias de tu proyecto. Aquí tienes un ejemplo simple de cómo configurarlo:
Asegúrate de que estás en el directorio correcto y ejecuta Composer.
Añade la dependencia con el comando:
composer require --dev phpunit/phpunit
Define la estructura de tu proyecto en el archivo composer.json:
{"name":"proveedor/proyecto","description":"Proyecto de programación orientada a objetos","autoload":{"psr-4":{"App\\":"src/"}}}
Ejecuta el comando composer dump-autoload para registrar la información de autoload.
¿Cómo configurar XML para PHP Unit?
Una vez que hayas configurado Composer, el siguiente paso es preparar el archivo XML de configuración para PHP Unit. Aquí te muestro cómo hacerlo:
Crea un archivo llamado phpunit.xml con la configuración básica:
<?xml version="1.0" encoding="UTF-8" ?><phpunitbootstrap="vendor/autoload.php"colors="true"><testsuitename="directorio de pruebas"><directory>tests</directory></testsuite></phpunit>
Observa el uso de la línea de bootstrap, que asegura el autocarga cuando se ejecuten las pruebas.
Añade un test suite definiendo el directorio donde se ubicarán los tests.
¿Cómo crear y estructurar un test en PHP Unit?
Ahora que tienes todas tus configuraciones listas, puedes comenzar a escribir tus tests. Aquí tienes una estructura básica para empezar:
Crea una carpeta tests y dentro define clases de prueba, por ejemplo:
La clase de prueba extiende TestCase. Este es un paso fundamental para poder realizar las pruebas correctamente.
Define métodos de prueba comenzando con test, lo que hace que las pruebas sean reconocidas por PHP Unit.
Usa aserciones para validar el comportamiento de tu código, como assertEquals y assertInstanceOf.
¿Qué papel juegan las pruebas en el desarrollo TDD?
El legado del desarrollo guiado por pruebas, o TDD, es crucial para escribir mejor código. Siguiendo esta metodología, desarrollas de acuerdo a las necesidades y errores que señalen las pruebas, avanzando desde tests fallidos que guían la implementación adecuada del código.
Con PHP Unit y TDD, la lógica es sencilla: primero escribes las pruebas, luego compilas el código que solucionará esos tests fallidos, transformando los errores rojos en éxitos verdes. Así, tu proyecto no solo mejora en calidad, sino que también asegura veracidad y funcionalidad a lo largo del tiempo.
Continúa afianzando estos conceptos y pronto verás cómo la calidad de tus aplicaciones mejora significativamente. ¡Sigue adelante!
Es muy recomendado desarrollar con pruebas, así cuando tienes un error en tus páginas, las pruebas te ayudarán a identificarlos en lugar de estar media hora tratando de adivinar por qué decidí estudiar programación y no otra cosa jaja
Laravel tiene un módulo de pruebas con PHPUnit, así que les recomiendo mucho tomar mucha atención a estas clases.
jajaja muy cierto !
Excelente aporte
TDD: Test Driven Development
Para Windows se debe ejecutar el comando así:
php vendor/phpunit/phpunit/phpunit
Me encuentro desarrollando el curso en el sistema operativo de Windows, donde estoy utilizando la ventana de comandos de git y puedo ejecutar los comandos tal cual el profesor los deja en la clase
📑Significa Desarrollo guiado por pruebas, o Tests-Driven Development es una práctica de ingeniería de software que involucra otras dos prácticas: Escribir las pruebas primero (Test First Development) y Refactorización (Refactoring).
🔴Rojo -> En este paso se crea la prueba la cual no tiene código creado y tiende a generar un fallo.
🟢Verde -> En verde se construye en código más sencillo para que la prueba funcione. En este paso es muy recomendado usar el principio KISS (Keep it Simple, Stupid).
🟣Refactorización-> Se trata de construir nuestro código de manera elegante y entendible para que nuestros compañeros lo entiendan, además de que le mismo no altere la prueba y mantenga el estado verde.
No entiendo porque el profesor nunca explica de que trata el proyecto que va a realizar, solo dice que haremos algo "muy interesante" y que comprenderemos todo, pero no hay una explicación de qué vamos a hacer y por qué se hace.
En clases posteriores se puede entender un poco más, pero es muy difícil seguir a este profesor y su método de enseñanza.
Realmente estoy siguiendo las recomendaciones de Platzi y no quiero saltarme los cursos pero se hace muy tedioso.
si yo tampoco entiendo lo que esta haciendo, sabes que es lo que se debe aprender antes para entender esta clase?
Demasiado cierto este comentario
15. Iniciando nuestro proyecto: PHPUnit y clases heredadas
Estos son los pasos vistos en clase:
Lo primero que hacemos es movernos al directorio donde vamos a trabajar (desde la terminal en Vscode). En mi caso yo uso PowerShell, tú puedes usar tu terminal de preferencia con tal que tengas instalado PHP y Composer :).
Se debe ejecutar el siguiente comando:
composer require--dev phpunit/phpunit
Abrimos el archivo composer.json y agregamos el siguiente código arriba de "require/dev":
"name":"aldo/post","description":"Proyecto de OOP","autoload":{"psr-4":{"App\\":"src/"}},
Luego en la terminal debemor ejecutar el siguiente comando (esto crea el archivo autoloaddentro de la carpeta vendor:
composer dump
Luego creamos un archivo nuevo llamado phpunit.xml y le colocamos dentro lo siguiente:
Aquí estamos aplicando la metodología TDD (Test Driven Development), o desarrollo guiado por pruebas.
PHPUnit es lo que se da en este curso o es mas complejo? porque siendo así bien se podría hacer un curso exclusivo de esto.
Seria algo muy bueno, un curso de PHPUnit! aplicado en Laravel..
El profesor tiene una organización basada en enseñar PHP. Se llama Rimorsoft. Lo pueden encontrar en Youtube o en su página.
Está buenísimo. Ya vi dónde me voy a seguir formando después de terminada la ruta.
Con un poco de experiencia, también puedes iniciar tu proyecto mediante el comando:
composer init
y de ahi sería seguir instrucciones :) .
Entonces con TDD obtengo primero todos mis errores y voy solucionando uno por uno hasta quedar en verde?
Esa es la idea
Un poco tarde para comentar, pero para ser sincero, creo el test y hago que falle, y una vez que me falle, trato como quien dice "completarlo todo" y luego ejecuto el test, es decir que cuando escribo el codigo, estoy cubriendo "varios errores" basicos, regularmente no siempre hago que te de 1 error por error, o si no, si me tomaria mucho más tiempo, ya la experiencia te dirá como manejar esto, pero para clases didacticas, sirve de mucho para las personas nuevas 👍
😃 La metodología TDD (Test Driven Development) consiste en realizar primero las pruebas para posteriormente escribir el código a implementar.
Escribo ese mismo comando en la termina y me intenta abrir el archivo phpunit, más no lo ejecuta para hacer las pruebas. Me podrían ayudar?
¿Lo solucionaste?
¿Podrías subir una captura de pantalla?
Para los que están trabajando con el cmd directamente de VSCode ejecuten esto y les funcionará:
después de instalar composer ya pude ejecutar el comando
me funciono, gracias hermano, para quienes tengan problema no olviden antes de esto tambien añadir en las variables de enterno el path de xampp/php
Tengo un error al ejecutar vendor/phpunit/phpunit/phpunit, me sale esto:
PS C:\xampp\htdocs\WorkSpace_Platzi\Proyecto> .\vendor\phpunit\phpunit\phpunit
Error al ejecutar el programa 'phpunit': No hay ninguna aplicación asociada con el archivo especificado para esta operaciónEn línea: 1
Carácter: 1
con esto funciiona.
sino te recomiendo cambiar la terminal predeterminada de vscode por la de gitbash, funciona mejor y con los comandos unix.
porque no explica como instalar phpunit y composer primero???
buenas noches, cuando estoy intentando ejecutar vendor/phpunit/phpunit/phpunit, me dice que necesito abrir el archivo con algun editor, pero no me deja ejecutar el test, además cuando abro ese archivo (phpunit) en la última línea: PHPUnit_TextUI_Command::main(); me genera un error :Undefined type 'PHPUnit_TextUI_Command'
¿Qué debo de hacer?, alguien que me pueda indicar una solución. Gracias comunidad
Wenas!, si estas en Windows agrega php antes del comando vendor/phpunit/phpunit/phpunit
tengo este error al ejecutarlo... estoy desde subsystem linux en win 10
tal vez tu problema este asociado a que debes de colocar los nombres de las directorios como deben ser, es decir. Tienes PHPUNIT, cuando debe ser PhpUnit o Phpunit.
tienes mal escrito el phpuunit egun veo, o por otro lado recuerda hacer el "composer dump"