Continuemos, vamos a mejorar un poco nuestra preguntaria.
Por ejemplo, acá bucar esta me pone nombre lista vacía.
La idea es que pase la prueba.
Entonces tenemos que probar este nuevo contexto cuando la lista vacía llegue a cambiar en vez de thru,
simplemente sería fors.
Entonces, si da falso.
Es decir, si no encuentra examen, obviamente porque la lista vacía.
Pasamos la prueba y esto acá no tiene sentido.
En este nuevo contexto de prueba 12 quitamos esta línea y lo dejamos así.
Ahora, si ejecutamos todo por acá, debería pasar.
Todos los métodos se fijan bien ahora.
Bueno, vamos a cerrar acá.
Vamos a ampliar.
Ocultar la pestaña Project.
Si se fijan, acá se está repitiendo esto de acá.
El Repository, el selfis, new examen servis imprime.
Y también acá, como se está repitiendo.
Y probablemente lo vamos a utilizar en muchos métodos.
O por decir, en casi todos los métodos de nuestra prioritaria de que estamos probando.
Examen servis allá en piel.
Entonces acá podríamos colocar un método ciclo de día.
Se acuerdan el método que se ejecuta en cada método de test?
Entonces con al insert before it que justamente acá setup method, entonces lo seleccionamos Setup Método
y tenemos el Before It que se ejecute antes de cada prueba.
Perfecto.
Entonces vamos a bajar.
Vamos a seleccionar estos dos y lo vamos a mover con Archiv y subimos.
Masifica.
Lo cortamos.
Lo movimos a este método.
Pero para que se pueda utilizar estos atributos el repository tenemos acá el service leyde que sean
atributos de la clase.
Entonces vamos a definir esto acá, lo vamos a seleccionar, lo copiamos y lo pegamos acá bajamos acá
tenemos un atributo.
Hacemos lo mismo con esta.
Acá copiamos, pegamos dos atributos.
Perfecto.
Ahora simplemente esto lo quitamos y también estoy acá.
Lo jamás así.
Y así se reutiliza y un poco más abajo bajamos al metro de lista vacía.
Hasta acá quitamos todo línea se controlé aquí Control X se fijan que mucho mejor que mucho más limpio.
Acá se prepara el escenario, se crea nuestro Mok Repository y una dependencia de la clase cérvix.
Creamos la instancia clase servis, le pasamos la dependencia.
Por supuesto que sería este Mok.
Este objeto simulado no es el real y lo utilizamos en nuestra preguntaria tal como lo vimos ahora.
Si ejecutamos todo va a funcionar tal como estaban, sin ningún problema.
Queda mejor?
Bien, ahora vamos a completar un poco más nuestro ejemplo, agregando otra dependencia al servis,
otro repositorio que también va a tener una relación con el repositorio de examen, porque un examen
podría tener preguntas.
Entonces kaikki busquemos un examen.
También podrían buscar el examen con sus preguntas y vamos a manejar dos repositorios.
Uno, por ejemplo, podría realizar una consulta a una base dato X o a un micro servicio X.
Obtenemos este listado de exámenes y después en otro dato o bien en otro micro servicio o en realidad
en cualquier fuente.
Podríamos modificar sus preguntas por el Leydi del examen.
Podría estar en repositorios, en bases de datos o en servidores separados?
La pregunta con exámenes típicamente en una arquitectura de micro servicios es muy típico para poder
balancear la carga de lo distintos componentes, separar los roles de nuestra aplicación y que no sea
todo un monolito, sea un diseño orientado al dominio, mucho más desacoplar.
Esa sería la idea.
Entonces lo primero que tenemos que hacer es crear una nueva interfaz.
Pregunta Repositorio y busca las preguntas por examen.
Heidy Bien, para eso nos vamos.
Aidé Alpaca explores nos vamos a ir al РАМКАХ por acá repositorios vamos a crear una interfaz con alt
insert.
Buscamos por acá.
Bueno, ya va a.
Pregunta Repositorio.
Perdón.
Interfaz.
Interfaz?
No es clase.
Entonces simplemente voy a modificar acá, acá.
Public interfaz.
Perfecto.
Una interfaz.
Vamos a bajar con un método que devuelva a la lista preguntas.
Entonces un list de preguntas.
Pero recuerda que la pregunta la tenemos como el tipo String.
Entonces el tipo String vamos a importar.
Listo.
Por acá.
De lleba útil.
Faen preguntas por examen Heidy.
Perfecto.
Ahí tiene una interfaz repository.
También podríamos tener una implementación, una clase, pero para nuestras preguntaria convicto da
lo mismo, porque vamos a hacer un mock de este repositorio que es una dependencia del servis.
Bien, el siguiente paso es implementar un método en el servis, en la interfaz primero y después lo
implementamos.
La clase implementa allá en piel.
Este método que vaya a buscar la pregunta no cierto por el examen Heidy y devuelva el examen con todas
sus preguntas.
Entonces lo mismo nos vamos a repository.
Bueno, ya tengo un interfaz.
Ahora lanzamos a Servis a la interfaz servis.
Por acá vamos a agregar un nuevo método.
Va a devolver un examen.
También podría ser una optional, pero para variar lo vamos a hacer con examen en realidad.
Fin examen por nombre con preguntas.
Fin examen
que pasamos el nombre del examen.
Bien se fijan.
Muy parecido Finn.
Examen por nombre, pero solamente Guolfe El examen como un opcional y acá devuelve el examen problema
con las preguntas.
Por lo tanto, dentro este método deberíamos invocar este método acá, obtener el examen, obtener el
Heidy y mediante Leidy ir a buscar al otro repositorio la preguntas de ese examen.
Entonces ahora con control TAF nos vamos a ir a servis implemento este de acá.
Vamos a implementar acá este nuevo método sobre el error implementar métodos.
Los seleccionamos ok, entonces acá una dependencia privat.
Pregunta repositorio y también lo inicializamos el constructor acá.
Entonces por acá en el constructor Koma voy a ocultar el menú este de acá.
Nos aparte de completa esto acá lo cerramos.
Pregunta Repository Repository.
Pregunta Repositorio perfecto.
Bajamos.
Bajamos diez.
Punto.
Pregunta Repository igual.
Pregunta Repository.
Ahí tenemos la dependencia.
Inyectamos por constructor estos dos argumentos, estos dos repository que son dependencia.
Entonces el primero ya sabemos que se llama repositorio para ir a buscar un examen por el nombre o por
el Heidy o por lo que sea, que podría ser una base de datos específica y otro repositorio que podría
ser otra base, dato específica o incluso la misma base dato, pero en otra tabla en fiso mucha alternativa
depende del contexto de nuestra aplicación en el diseño, los requisitos negocio, las reglas.
Como ya he mencionado, también podría ser incluso otro servidor, otro servicio, una API rest.
Bien, entonces acá vamos a obtener el examen un optional de examen examen optional por acá lo tenemos
igual.
Invocamos el método Find, estaban por el nombre y le pasamos el nombre.
Se fijan?
Al final estamos invocando este método de acá para obtener el examen.
Preguntamos con un NIF, vamos a preguntar si está presente de examen optional punto is present perfecto.
Vamos a tocar la preguntas list de preguntas de strength también pudiesse pregunta vamos a importar
el list acá de ya útil.
Preguntas y usamos el otro repositorio Pregunta Repositorio Punto Bucar pregunta por examen Heidy Pero
ya tenemos el examen o al menos el optional para poder obtener el examen.
De hecho lo podríamos definir acá.
Examen no, igual no lo vamos a definir, solamente definimos la variable.
Entonces acá obtenemos el examen examen igual examen optional punto or el 0u документы cualquiera de
dos get o or el 0.
Bien, ahí tenemos el examen, nos vamos acá examen punto inquieta y vamos a buscar la pregunta por
el examen.
Heidy, cuál será el siguiente paso?
Examen, punto, set set preguntas y le pasamos preguntas, se la asignamos al examen, bajamos y devolvemos
examen y listo.
Ya tenemos nuestro servis y un nuevo contexto de prueba que probar un nuevo método el examen con sus
preguntas.
Entonces para resumir, nuestra clase servis tiene dos forma de obtener el examen.
Una como lo vimos anteriormente, solamente el examen sin su pregunta obtiene el examen en extreman
repositorio o bien obtener el examen con su pregunta.
Utilizamos este método, obtenemos el examen si está presente, vamos a ir al otro repositorio al de
pregunta a obtener la pregunta de ese examen en particular.
Pasando Leydi des examen y no importa, no interesa cómo esté implementado.
Pregunta Repositorio Recuerden, es una dependencia externa, no es algo que queremos probar, ni tampoco
no nos interesa saber cómo está implementado y tampoco si viene de una base auto o de cualquier tipo,
fuente o API rest.
Eso es completamente ajeno a nuestra aplicación.
Es una parte externa de nuestra aplicación que si estamos integrando, pero lo importante es probar
nuestro código.
Examen Servis implementa y por supuesto estos van a ser mok.
Vamos a hacer un mock de pregunta repositorio al igual como lo hicimos con Extreman Repositorio.
Vamos a simular estos dos objetos.
Bien, nos vamos a ir entonces a nuestra clase de test.
Perdón.
Acá yo tengo que modificar porque tenemos un nuevo atributo y también dependencia de la pregunta.
Entonces por acá vamos a tener un nuevo atributo.
Pregunta repositorio de vamos a llamar exactamente igual.
Pregunta el repositorio y el examen repository sería repository, simplemente repositorio y para examen
y pregunta repository para pregunta.
Bien, lo siguiente es crear el mock de pregunta repositorio.
Entonces por acá en el zETAp de chocar voy a bajar porque tengo un espacio y acá bajamos.
Creamos el mock de pregunta repositorio igual mock tal como lo hicimos y pasamos en nombre de la clase
Odra Interface.
En este caso es una interfaz, pero también podría ser una clase que implementa una interfaz con alguna
implementación cualquiera.
Pregunta Repositorio Punto Class y lo pasamos por constructor como segundo argumento.
Por eso marca un error, porque el constructor recibe ambas dependencias.
Pregunta Repositorio Ta listo.
Ahora solamente faltaría crear algunos métodos de prueba para la pregunta, pero bueno, eso lo dejamos
para la siguiente clase para que no sea tan extenso.
Lo dejamos así y nos vemos en la siguiente clase.