Vamos a ver las anotaciones de moquitos que están relacionado a la inyección de dependencia.
Vamos a subir por acá en el Before It.
Acá cuando creamos los mock de forma manual se fijan.
Acá creamos la instancia utilizando el método Mock de la clase moquitos.
Se fijan prostático.
Entonces, en vez de hacer esto y en vez de crear el objeto con el new examen servis aullan piel con
el repository y pregunta repository con el examen repository.
Esto lo podemos hacer mediante inyección, dependencia, usando notaciones y lo hace bien robusto porque
esto lo podríamos quitar.
Esto acá desaparece, entonces simplemente lo comentamos con controles Larch, lo comentamos y también
comentamos a tres líneas.
Se fijan, ya no se crean la referencia de forma manual si no lo maneja el contenedor de inyección de
dependencia y del contexto de moquitos, pero para eso tenemos que utilizar algunas anotaciones.
Importante primero anotar acá y acá es importante distinguir.
Acá tenemos tres objetos que son atributos, son dos mock y un servis, se fijan, acá tenemos examen
servis.
De hecho lo voy a cortar acá para que quede separado y esto.
Lo dejamos ahí.
Y acá están las series.
Bien, entonces son dos mock, examen repository y pregunta repository y tenemos servis.
Recuerden que estos dos se inyectan acá.
Entonces lo primero, una anotación para crear los mock.
Entonces con el arroba mok solamente moko lo importamos de %or punto makita.
Perfecto.
Entonces indiquemos y creamos estas dos instancias que son moko.
Lo mismo acá.
Perfecto y faltaría acá y acá.
Tengo que de alguna forma indicar de que crea la instancia examen servis hayan piel que cree esta referencia
y además que le inyecte estos dos objetos mediante constructor.
Entonces es por eso importante para que se pueda inyectar vía constructor es tener el constructor con
estos dos objetos, con el repository y pregunta repository.
Pero eso ya lo tenemos, se fijan?
Eso ya lo tenía, me preguntaba.
Por lo tanto acá simplemente vamos a colocar la anotación inyec mock por acá lo tenemos Inyec Mok,
es decir, crea la instancia del servis, la referencia, el objeto y además que inyecte étodos su objeto.
Al final sería lo mismo que esto, pero utilizando anotaciones.
El único problema que acá tenemos la interfaz y necesitamos crear una implementación concreta se.
Bueno, de todas formas no va a pasar nada porque si ejecutamos debería fallar, pero antes de eso tenemos
que habilitar el uso de anotaciones y para eso lo hacemos en el setup, en el before it.
Bueno, de diferente forma vamos a ver dos que es la más típica.
Una se habilita con mosquito, anoté schön
punto open mocks.
Le pasamos diez esta referencia la instancia de esta clase test.
Entonces con Open Mocks habilitamos el uso de anotaciones para esta clase.
Entonces se va a crear el mock usando anotaciones para repository y para preguntas repository, se instancia,
se crean, se inyectan a estas referencias, a estos atributos.
Después se crea la instancia de servis inyectÃ.
Estas dos referencias vía constructor.
Esto es lo que hace.
Pero acá, como explicaba, tenemos la interfaz examen servis.
Veamos qué pasa si ejecuto, levantamos.
Debiese fallar porque la interfaz Extreme Service es una interfaz, no se puede instanciar, se fijan.
Entonces necesitamos en vez de que sea el tipo genérico, sea el tipo concreto.
Entonces simplemente colocamos servis examen servis hayan pieda.
Entonces colocamos hallam piel y listo.
Con eso se soluciona el tipo de la clase concreta.
Ahora si entonces volvemos a ejecutar y todo va a funcionar como lo teníamos antes.
Se fijan?
Ya no se necesita crealo Mok con el metodo Mock de forma manual, crear nuestra clase, ser Bick.
Queremos probar nuestro sujeto de prueba con el operador new no, no necesario.
Ahora utilizamos inyección, dependencia, un patrón de diseño que se utiliza bastante en los framework
como en Spring, en moquitos, por supuesto.
Y también todo lo que es interpretables conlleva Enterprise, Michon y en un montón de frameworks.
Esto lo dejo comentado.
Si quieren lo pueden quitar, lo pueden eliminar.
Queda mucho más limpio el código.
En fin, bien, pero esta es una forma de habilitar la zona traciones utilizando esto de acá.
Pero hay otra forma.
De hecho, esto lo voy a comentar de Bejan.
Incluso podríamos quitar esto, ya que este método se podría quitar comentar.
Da lo mismo eliminar.
Yo solamente lo voy a dejar para que lo tengan ahí como alternativa, como opción.
Pero otra forma es anotar acá con extensión, extensión con o extender con la anotación extended tender
with extender con moquitos extensión por acá tenemo moquitos extensions punto class.
Importante el punto plás y listo.
Ya con eso extendemos nuestra clase de test unit.
Nuestro ejecutor de UNIT para que también ejecute con la atención de moquitos y habilite las anotaciones
y todo lo que es el tema de inyección de dependencia.
Y eso es todo.
Pero para esto es importante si nos vamos al POM.
Bueno, creo que lo tenemos en proyecto por acá nos vamos al POM.
Es importante tener esta dependencia Moquitos y Juny Júpiter.
Es decir, esta dependencia que integra poquito con el plataforma de Yunis y Júpiter para poder ejecutar
nuestra unitaria con este Playitas, con esta extensión, habilitando las anotaciones.
Bien, volvemos a texto y probamos.
Debía funcionar.
FICAN perfecto usando anotaciones y lo dejamos así.
Nuestro código queda mucho mejor, mucho más ordenado.
Además, utilizando el patrón de inyección de dependencia como quito anotaciones y nos vemos en la siguiente
clase.