martes, 25 de junio de 2024

11 Refactorizando. Presentación

𝟏𝟏-𝐑𝐞𝐟𝐚𝐜𝐭𝐨𝐫𝐢𝐳𝐚𝐧𝐝𝐨 𝐮𝐧𝐚 𝐚𝐩𝐥𝐢𝐜𝐚𝐜𝐢𝐨𝐧 𝐒𝐩𝐫𝐢𝐧𝐠𝐁𝐨𝐨𝐭. 𝐏𝐫𝐞𝐬𝐞𝐧𝐭𝐚𝐜𝐢𝐨𝐧
Hemos dividido el trabajo en dos videos, en este primero, comentamos el porque se debe refactorizar, y analizamos las distintas labores que deberemos realizar en el CRUD, asi como las posibilidades de 𝐉𝐮𝐧𝐢𝐭, y de 𝐆𝐢𝐭𝐡𝐮𝐛 para ayudarnos en nuestro trabajo

lunes, 10 de junio de 2024

𝟏𝟎.𝟓 - 𝐓𝐞𝐬𝐭 𝐝𝐞 𝐉𝐮𝐧𝐢𝐭 𝐩𝐚𝐫𝐚 𝐞𝐥 𝐂𝐑𝐔𝐃 𝐝𝐞 𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫, 𝐞𝐧 𝐒𝐩𝐫𝐢𝐧𝐠𝐁𝐨𝐨𝐭, ...

𝐓𝐞𝐬𝐭 𝐝𝐞 𝐉𝐮𝐧𝐢𝐭 𝐲 𝐌𝐨𝐜𝐤𝐢𝐭𝐨 𝐩𝐚𝐫𝐚 𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐥𝐞𝐫𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚
Seguimos con nuestro desarrollo, que podéis recuperar en Github, En este caso, preparamos el test del controlador de Película, en donde evitaremos el acceso a la base de datos, por medio de Mockito.

jueves, 6 de junio de 2024

𝟏𝟎.𝟒 - 𝐄𝐬𝐜𝐫𝐢𝐭𝐮𝐫𝐚 𝐲 𝐩𝐫𝐮𝐞𝐛𝐚 𝐜𝐨𝐧 𝐏𝐨𝐬𝐭𝐦𝐚𝐧 𝐝𝐞𝐥 𝐜𝐨𝐧𝐭𝐫𝐨𝐥𝐚𝐝𝐨𝐫 𝐝𝐞 𝐂𝐑𝐔𝐃 𝐩𝐚𝐫𝐚 𝐏𝐞𝐥𝐢...

𝐂𝐨𝐧𝐭𝐫𝐨𝐥𝐚𝐝𝐨𝐫 𝐝𝐞 𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚 𝐲 𝐩𝐫𝐮𝐞𝐛𝐚𝐬 𝐜𝐨𝐧 𝐏𝐨𝐬𝐭𝐦𝐚𝐧
En este video, escribimos un CRUD básico para la tabla Pelicula y probamos su funcionamiento con Postman, hasta que tengamos el test de Junit preparado en el proximo video.
Tienes, también, todo el desarrollo en GitHub

martes, 4 de junio de 2024

𝟏𝟎.𝟑 - 𝐄𝐬𝐜𝐫𝐢𝐭𝐮𝐫𝐚 𝐲 𝐭𝐞𝐬𝐭 𝐣𝐮𝐧𝐢𝐭 𝐝𝐞 𝐥𝐚 𝐚𝐧𝐨𝐭𝐚𝐜𝐢ó𝐧 @𝐂𝐡𝐞𝐜𝐤𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚𝐕𝐚𝐥𝐢𝐝𝐚𝐭𝐢𝐨𝐧

𝟏𝟎.𝟑 - 𝐄𝐬𝐜𝐫𝐢𝐭𝐮𝐫𝐚 𝐲 𝐭𝐞𝐬𝐭 𝐣𝐮𝐧𝐢𝐭 𝐝𝐞 𝐥𝐚 𝐚𝐧𝐨𝐭𝐚𝐜𝐢ó𝐧 @𝐂𝐡𝐞𝐜𝐤𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚𝐕𝐚𝐥𝐢𝐝𝐚𝐭𝐢𝐨𝐧
Desarrollamos una anotación para validar la existencia del id de película, y preparamos un test de junit para probarla.

viernes, 31 de mayo de 2024

𝟏𝟎.𝟐-𝐑𝐞𝐚𝐥𝐢𝐳𝐚𝐜𝐢ó𝐧 𝐝𝐞 𝐮𝐧 @𝐃𝐚𝐭𝐚𝐉𝐩𝐚𝐓𝐞𝐬𝐭 𝐩𝐚𝐫𝐚 𝐞𝐥 𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚𝐒𝐞𝐫𝐯𝐢𝐜𝐞

𝟏𝟎.𝟐-𝐑𝐞𝐚𝐥𝐢𝐳𝐚𝐜𝐢ó𝐧 𝐝𝐞 𝐮𝐧 @𝐃𝐚𝐭𝐚𝐉𝐩𝐚𝐓𝐞𝐬𝐭 𝐩𝐚𝐫𝐚 𝐞𝐥 𝐏𝐞𝐥𝐢𝐜𝐮𝐥𝐚𝐒𝐞𝐫𝐯𝐢𝐜𝐞
Ahora toca preparar un test de Junit, y, como el módulo interactúa con la base de datos y estamos con SpringBoot, vamos a utilizar la anotación @DataJpaTest para que nos haga los RollBacks automáticamente al final de cada test.

miércoles, 29 de mayo de 2024

𝟏𝟎.𝟏 𝐔𝐭𝐢𝐥𝐢𝐳𝐚𝐧𝐝𝐨 𝐮𝐧𝐚 𝐜𝐥𝐚𝐬𝐞 𝐚𝐛𝐬𝐭𝐫𝐚𝐜𝐭𝐚 𝐞𝐧 𝐥𝐮𝐠𝐚𝐫 𝐝𝐞 𝐥𝐚 𝐢𝐧𝐭𝐞𝐫𝐟𝐚𝐳 𝐝𝐞 𝐬𝐞𝐫𝐯𝐢𝐜𝐢𝐨

𝟏𝟎.𝟏 𝐔𝐭𝐢𝐥𝐢𝐳𝐚𝐧𝐝𝐨 𝐮𝐧𝐚 𝐜𝐥𝐚𝐬𝐞 𝐚𝐛𝐬𝐭𝐫𝐚𝐜𝐭𝐚 𝐞𝐧 𝐥𝐮𝐠𝐚𝐫 𝐝𝐞 𝐥𝐚 𝐢𝐧𝐭𝐞𝐫𝐟𝐚𝐳 𝐝𝐞 𝐬𝐞𝐫𝐯𝐢𝐜𝐢𝐨

Añadimos a la interface de servicio de la tabla de Pelicula, en una aplicacion SpringBoot, una clase abstracta, para aportar todo el posible código común que pueda aparecer reduciendo el código a escribir en PeliculaService


jueves, 23 de mayo de 2024

𝟎𝟗.𝟓 𝐄𝐬𝐜𝐫𝐢𝐛𝐢𝐞𝐧𝐝𝐨 𝐞𝐥 𝐭𝐞𝐬𝐭 𝐝𝐞 𝐉𝐮𝐧𝐢𝐭𝟓/𝐒𝐩𝐫𝐢𝐧𝐠 𝐩𝐚𝐫𝐚 𝐞𝐥 𝐜𝐨𝐧𝐭𝐫𝐨𝐥𝐚𝐝𝐨𝐫 𝐝𝐞 𝐥𝐚 𝐭𝐚𝐛𝐥...

𝟗.𝟓-𝐄𝐬𝐜𝐫𝐢𝐛𝐢𝐞𝐧𝐝𝐨 𝐮𝐧 𝐭𝐞𝐬𝐭 𝐝𝐞 𝐉𝐮𝐧𝐢𝐭𝟓 𝐞𝐧 𝐞𝐧𝐭𝐨𝐫𝐧𝐨 𝐒𝐩𝐫𝐢𝐧𝐠
Después de todas las pruebas que hemos ido realizando, antes de dejar este CRUD, debemos escribir el test de Junit5, para que el ordenador pueda verificar en cualquier momento que todo funciona.


viernes, 17 de mayo de 2024

𝟎𝟗.2-𝐄𝐬𝐜𝐫𝐢𝐛𝐢𝐞𝐧𝐝𝐨 𝐫𝐞𝐩𝐨𝐬𝐢𝐭𝐨𝐫𝐢𝐨, 𝐬𝐞𝐫𝐯𝐢𝐜𝐢𝐨 𝐲 𝐜𝐨𝐧𝐭𝐫𝐨𝐥𝐚𝐝𝐨𝐫 𝐩𝐚𝐫𝐚 𝐥𝐚 𝐭𝐚𝐛𝐥𝐚 𝐄𝐧𝐭𝐫𝐚𝐝𝐚

𝐄𝐬𝐜𝐫𝐢𝐛𝐢𝐞𝐧𝐝𝐨 𝐞𝐥 𝐫𝐞𝐬𝐭𝐨 𝐝𝐞𝐥 𝐂𝐑𝐔𝐃 𝐝𝐞 𝐥𝐚 𝐭𝐚𝐛𝐥𝐚 𝐞𝐧𝐭𝐫𝐚𝐝𝐚
Una vez hemos terminado el Entity, el DTO y los filtros que podemos necesitar, ha llegado el momento de escribir repositorio, servicio, y controlador para "entrada"Si quieres ahorrar tiempo, también lo tienes en 𝐠𝐢𝐭𝐡𝐮𝐛 (dirección en el comentario del video)Otro módulo de SpringBoot listo para que lo entendais y escribáis, o lo copieis desde GitHub.

miércoles, 15 de mayo de 2024

𝟎𝟒.𝟒 𝐀𝐧𝐨𝐭𝐚𝐜𝐢𝐨𝐧𝐞𝐬 𝐂𝐨𝐦𝐩𝐫𝐨𝐛𝐚𝐜𝐢ó𝐧 𝐝𝐞 𝐬𝐢 𝐞𝐱𝐢𝐬𝐭𝐞 𝐥𝐚 𝐞𝐧𝐭𝐫𝐚𝐝𝐚 𝐞𝐧 𝐭𝐚𝐛𝐥𝐚 @𝐂𝐡𝐞𝐜𝐤𝐄𝐧𝐭...

𝐄𝐬𝐜𝐫𝐢𝐛𝐢𝐞𝐧𝐝𝐨 𝐮𝐧𝐚 𝐚𝐧𝐨𝐭𝐚𝐜𝐢ó𝐧 𝐦𝐚𝐬 𝐝𝐞 𝐟𝐢𝐥𝐭𝐫𝐨 
Este filtro, de SpringBoot, ha de comprobar que existe en la tabla Entrada el número indicado por la ID. Para poderlo hacer, deberá acceder a la tabla, y, como deseamos realizar tambien el test de Junit, tendremos que usar mockito para evitar el acceso.

jueves, 9 de mayo de 2024

08 3 Escribiendo un test de integración:Junit5+BBDD+SpringBoot-II (para ...


Escribiendo esta clase, no solo sirve como un test de integración, si no que te permite realizar continuamente todas esas pruebas que tenemos que hacer al terminar de programar y tanta pereza dan. Mientras que el aplicativo trabaja con una base de datos Oracle, el test lo hace contra una base de datos en memoria H2, y nos permite realizar todas las funcionalidades, aunque hayamos tenido que acudir a @Order para conseguir que los test funcionen bien y rápido.

martes, 7 de mayo de 2024

08 3 Escribiendo un test de integración:Junit5+BBDD+SpringBoot-I

08-3 Escribiendo un test de integración:Junit5+BBDD+SpringBoot-I

Empezamos la construcción de un test de integración, en donde utilizaremos una BBDD con H2, con el que podremos probar toda la operación, desde los comandos API, hasta el manejo de la base de datos


jueves, 2 de mayo de 2024

08 2 Test de Junit5 en Springboot, para CineController - Parte 2

Aquí está la segunda parte, con el desarrollo de un test de Junit5 para un controlador de SpringBoot. Revisamos los métodos de POST y PUT y seguimos aprendiendo a programar en este entorno, y vemos la utilidad de POSTMAN

martes, 30 de abril de 2024

08 2 Test de Junit5 en Springboot, para CineController

Utilizando Junit5 para preparar test de SpringBoot

Vamos a escribir un test para nuestro controlador; en él, no probaremos nuestro acceso a datos, si no únicamente el comportamiento de nuestro controlador, desde que recibe una llamada http, hasta que devuelve la respuesta al cliente. Utilizaremos Mockito para simular el acceso a BBDD y para hacer las llamadas HTTP

miércoles, 24 de abril de 2024

08 1 Test básico de Java para CineController


Presentación inicial de test. Realizamos un test de java básico a un programa Spring como introducción al test de spring que hacemos en el siguiente video. Presentación de Mockito y resolución de rutinas auxiliares

viernes, 19 de abril de 2024

06 Programando un poco mejor los Entity y DTO

Algo que a veces olvidamos es la necesidad de que los programas estén correctamente estructurados. Eso, que en principio parece un capricho de jefe carca, lo descubrimos como una necesidad en cuanto tenemos un poco de experiencia y empezamos a sufrir el trabajo de los demás. En este video, señalamos algunas diferencias notables entre el Entity y el DTO y vemos como aplicar las anotaciones de filtro.. si, incluso las que hayamos creado nosotros.

jueves, 18 de abril de 2024

05 Escribiendo un ControllerAdvice

No solo se trata de conseguir que nuestra app funcione bien, también es necesario que cuando haya un error, lo comuniquemos correctamente; ya sea al programador, o al usuario, y eso, en SpringBoot lo hacemos con un ControllerAdvice. En el video que acompaña, veréis como hacerlo, las ventajas que obtenemos, y la direccion de Github de donde podeis copiarlo....

miércoles, 17 de abril de 2024

00-Presentacion SpringBoot

Presentación de un proyecto para realizar pruebas. Se trata de un CRUD de cuatro tablas, hecho con SpringBoot, y pensado para realizar una serie de videos explicando como realizar test unitarios, o de integración, o como añadirle seguridad con SpringSecurity, mas adelante, podemos utilizarlo para ver Hateoas,   Graphql, o cualquier otro tema de Spring que sugerais

01 Inicio de Proyecto con SpringBoot

Creamos un proyecto de SpringBoot y escribimos el modulo de validacion


02 Test Unitarios en SpringBoot (I)


02 Test unitarios en SpringBoot 2. Uso de ParameterizedTest

Optimización de los test realizados en el video anterior, utilizando ParameterizedTest, y obteniendo datos desde un array, desde una lista CSV constante o en fichero, o por medio de un método

Mas informacion en : 


Programando en Visual Code con Copilot (AI)

Instalamos Copilot en Visual Code y vemos como se comporta y en que nos puede ayudar


03.1 Empezando con el Entity de Cine

Creación de un fichero de apoyo para mantener protegidos los datos de application.properties
Escritura de una interface para Modelo
Codificacion de la Entity Cine

Mas informacion en : 


03.2 Escribiendo repositorio, servicio y controller para "Cine"

Creamos una interface común para todos los servicios de JPA, y escribimos el codigo para el repositorio, el servicio y el controlador para el CRUD de Cine, comentando y explicando cada opción

Mas informacion en : 


03.3 Realización de pruebas con Postman

Realizamos pruebas de todo lo programado hasta ahora, y, como nuestra APP es una API, utilizamos  Postman.
Corregimos algun error existente en el codigo y añadimos el Update, que no habíamos incluido en el controlador.

Mas informacion en : 


04.1 Anotación de un filtro de DNI

Creamos una anotación que servirá para comprobar la letra y el formato del DNI

Mas informacion en : 

04.2 Anotaciones para filtro de existencia de Cine en tabla

Instalación de Copilot en Eclipse/STS

Instalamos Copilot en Eclipse/STS y vemos como se comporta y en que nos puede ayudar Mas informacion en https://recursosformacion.com/2024/04/usando-la-inteligencia-artificial-en-la-programacion/



04.3 Anotacion de un filtro de fecha

Creamos una anotacion que realiza una comprobacion de formato de fecha, y que la fecha sea posterior a hoy. Da mensajes de error distintos segun sea la incidencia Mas informacion en : https://recursosformacion.com/2023/10/vision-de-conjunto-con-spring/ https://recursosformacion.com/2024/01/creando-un-filtro-personalizado-de-fecha-con-mensaje-segun-error/ Repositorio: https://github.com/recursosformacion/SpringYouTube