1
00:00:00,270 --> 00:00:05,390
Vamos a ver las anotaciones de moquitos que están relacionado a la inyección de dependencia.

2
00:00:05,640 --> 00:00:08,320
Vamos a subir por acá en el Before It.

3
00:00:08,490 --> 00:00:10,980
Acá cuando creamos los mock de forma manual se fijan.

4
00:00:10,980 --> 00:00:15,690
Acá creamos la instancia utilizando el método Mock de la clase moquitos.

5
00:00:16,020 --> 00:00:17,280
Se fijan prostático.

6
00:00:17,340 --> 00:00:22,920
Entonces, en vez de hacer esto y en vez de crear el objeto con el new examen servis aullan piel con

7
00:00:22,920 --> 00:00:26,370
el repository y pregunta repository con el examen repository.

8
00:00:26,580 --> 00:00:32,640
Esto lo podemos hacer mediante inyección, dependencia, usando notaciones y lo hace bien robusto porque

9
00:00:32,640 --> 00:00:33,510
esto lo podríamos quitar.

10
00:00:33,690 --> 00:00:39,800
Esto acá desaparece, entonces simplemente lo comentamos con controles Larch, lo comentamos y también

11
00:00:40,140 --> 00:00:41,100
comentamos a tres líneas.

12
00:00:41,100 --> 00:00:47,100
Se fijan, ya no se crean la referencia de forma manual si no lo maneja el contenedor de inyección de

13
00:00:47,100 --> 00:00:52,500
dependencia y del contexto de moquitos, pero para eso tenemos que utilizar algunas anotaciones.

14
00:00:52,540 --> 00:00:57,180
Importante primero anotar acá y acá es importante distinguir.

15
00:00:57,360 --> 00:01:03,810
Acá tenemos tres objetos que son atributos, son dos mock y un servis, se fijan, acá tenemos examen

16
00:01:03,810 --> 00:01:04,340
servis.

17
00:01:04,650 --> 00:01:08,400
De hecho lo voy a cortar acá para que quede separado y esto.

18
00:01:08,850 --> 00:01:09,450
Lo dejamos ahí.

19
00:01:09,840 --> 00:01:11,790
Y acá están las series.

20
00:01:13,230 --> 00:01:18,120
Bien, entonces son dos mock, examen repository y pregunta repository y tenemos servis.

21
00:01:18,300 --> 00:01:21,360
Recuerden que estos dos se inyectan acá.

22
00:01:21,510 --> 00:01:24,500
Entonces lo primero, una anotación para crear los mock.

23
00:01:24,720 --> 00:01:30,140
Entonces con el arroba mok solamente moko lo importamos de %or punto makita.

24
00:01:30,600 --> 00:01:31,050
Perfecto.

25
00:01:31,140 --> 00:01:34,440
Entonces indiquemos y creamos estas dos instancias que son moko.

26
00:01:34,890 --> 00:01:35,580
Lo mismo acá.

27
00:01:36,810 --> 00:01:39,530
Perfecto y faltaría acá y acá.

28
00:01:39,540 --> 00:01:46,920
Tengo que de alguna forma indicar de que crea la instancia examen servis hayan piel que cree esta referencia

29
00:01:47,100 --> 00:01:51,030
y además que le inyecte estos dos objetos mediante constructor.

30
00:01:51,120 --> 00:01:56,880
Entonces es por eso importante para que se pueda inyectar vía constructor es tener el constructor con

31
00:01:56,880 --> 00:01:59,940
estos dos objetos, con el repository y pregunta repository.

32
00:02:00,270 --> 00:02:01,950
Pero eso ya lo tenemos, se fijan?

33
00:02:02,040 --> 00:02:03,180
Eso ya lo tenía, me preguntaba.

34
00:02:03,690 --> 00:02:09,650
Por lo tanto acá simplemente vamos a colocar la anotación inyec mock por acá lo tenemos Inyec Mok,

35
00:02:10,230 --> 00:02:15,990
es decir, crea la instancia del servis, la referencia, el objeto y además que inyecte étodos su objeto.

36
00:02:16,140 --> 00:02:19,050
Al final sería lo mismo que esto, pero utilizando anotaciones.

37
00:02:19,440 --> 00:02:24,210
El único problema que acá tenemos la interfaz y necesitamos crear una implementación concreta se.

38
00:02:24,780 --> 00:02:29,910
Bueno, de todas formas no va a pasar nada porque si ejecutamos debería fallar, pero antes de eso tenemos

39
00:02:29,910 --> 00:02:35,350
que habilitar el uso de anotaciones y para eso lo hacemos en el setup, en el before it.

40
00:02:36,120 --> 00:02:39,300
Bueno, de diferente forma vamos a ver dos que es la más típica.

41
00:02:39,390 --> 00:02:42,840
Una se habilita con mosquito, anoté schön

42
00:02:45,510 --> 00:02:47,100
punto open mocks.

43
00:02:47,790 --> 00:02:54,270
Le pasamos diez esta referencia la instancia de esta clase test.

44
00:02:54,450 --> 00:02:59,390
Entonces con Open Mocks habilitamos el uso de anotaciones para esta clase.

45
00:03:00,770 --> 00:03:05,800
Entonces se va a crear el mock usando anotaciones para repository y para preguntas repository, se instancia,

46
00:03:05,810 --> 00:03:09,350
se crean, se inyectan a estas referencias, a estos atributos.

47
00:03:09,980 --> 00:03:12,850
Después se crea la instancia de servis inyectÃ.

48
00:03:12,980 --> 00:03:14,510
Estas dos referencias vía constructor.

49
00:03:14,660 --> 00:03:15,300
Esto es lo que hace.

50
00:03:15,920 --> 00:03:18,920
Pero acá, como explicaba, tenemos la interfaz examen servis.

51
00:03:19,040 --> 00:03:22,160
Veamos qué pasa si ejecuto, levantamos.

52
00:03:25,020 --> 00:03:31,260
Debiese fallar porque la interfaz Extreme Service es una interfaz, no se puede instanciar, se fijan.

53
00:03:31,800 --> 00:03:37,110
Entonces necesitamos en vez de que sea el tipo genérico, sea el tipo concreto.

54
00:03:37,200 --> 00:03:40,920
Entonces simplemente colocamos servis examen servis hayan pieda.

55
00:03:41,280 --> 00:03:44,670
Entonces colocamos hallam piel y listo.

56
00:03:44,760 --> 00:03:48,040
Con eso se soluciona el tipo de la clase concreta.

57
00:03:48,420 --> 00:03:53,280
Ahora si entonces volvemos a ejecutar y todo va a funcionar como lo teníamos antes.

58
00:03:57,330 --> 00:03:57,990
Se fijan?

59
00:04:00,440 --> 00:04:06,770
Ya no se necesita crealo Mok con el metodo Mock de forma manual, crear nuestra clase, ser Bick.

60
00:04:06,800 --> 00:04:11,810
Queremos probar nuestro sujeto de prueba con el operador new no, no necesario.

61
00:04:11,930 --> 00:04:17,990
Ahora utilizamos inyección, dependencia, un patrón de diseño que se utiliza bastante en los framework

62
00:04:17,990 --> 00:04:21,050
como en Spring, en moquitos, por supuesto.

63
00:04:21,140 --> 00:04:26,720
Y también todo lo que es interpretables conlleva Enterprise, Michon y en un montón de frameworks.

64
00:04:27,290 --> 00:04:28,250
Esto lo dejo comentado.

65
00:04:28,430 --> 00:04:30,230
Si quieren lo pueden quitar, lo pueden eliminar.

66
00:04:30,260 --> 00:04:31,730
Queda mucho más limpio el código.

67
00:04:32,090 --> 00:04:37,460
En fin, bien, pero esta es una forma de habilitar la zona traciones utilizando esto de acá.

68
00:04:37,580 --> 00:04:38,630
Pero hay otra forma.

69
00:04:38,750 --> 00:04:41,120
De hecho, esto lo voy a comentar de Bejan.

70
00:04:41,180 --> 00:04:45,260
Incluso podríamos quitar esto, ya que este método se podría quitar comentar.

71
00:04:45,320 --> 00:04:46,370
Da lo mismo eliminar.

72
00:04:46,550 --> 00:04:51,140
Yo solamente lo voy a dejar para que lo tengan ahí como alternativa, como opción.

73
00:04:51,560 --> 00:05:01,070
Pero otra forma es anotar acá con extensión, extensión con o extender con la anotación extended tender

74
00:05:01,250 --> 00:05:10,340
with extender con moquitos extensión por acá tenemo moquitos extensions punto class.

75
00:05:10,760 --> 00:05:12,620
Importante el punto plás y listo.

76
00:05:12,750 --> 00:05:17,500
Ya con eso extendemos nuestra clase de test unit.

77
00:05:17,660 --> 00:05:25,970
Nuestro ejecutor de UNIT para que también ejecute con la atención de moquitos y habilite las anotaciones

78
00:05:26,330 --> 00:05:28,600
y todo lo que es el tema de inyección de dependencia.

79
00:05:28,910 --> 00:05:29,480
Y eso es todo.

80
00:05:29,870 --> 00:05:32,810
Pero para esto es importante si nos vamos al POM.

81
00:05:33,170 --> 00:05:36,530
Bueno, creo que lo tenemos en proyecto por acá nos vamos al POM.

82
00:05:37,190 --> 00:05:41,190
Es importante tener esta dependencia Moquitos y Juny Júpiter.

83
00:05:41,450 --> 00:05:48,710
Es decir, esta dependencia que integra poquito con el plataforma de Yunis y Júpiter para poder ejecutar

84
00:05:48,800 --> 00:05:53,390
nuestra unitaria con este Playitas, con esta extensión, habilitando las anotaciones.

85
00:05:53,590 --> 00:05:56,960
Bien, volvemos a texto y probamos.

86
00:05:57,050 --> 00:05:57,800
Debía funcionar.

87
00:06:02,870 --> 00:06:07,250
FICAN perfecto usando anotaciones y lo dejamos así.

88
00:06:07,340 --> 00:06:10,220
Nuestro código queda mucho mejor, mucho más ordenado.

89
00:06:10,310 --> 00:06:15,590
Además, utilizando el patrón de inyección de dependencia como quito anotaciones y nos vemos en la siguiente

90
00:06:15,590 --> 00:06:16,000
clase.
