1
00:00:00,210 --> 00:00:02,970
Continuemos, vamos a mejorar un poco nuestra preguntaria.

2
00:00:03,030 --> 00:00:06,330
Por ejemplo, acá bucar esta me pone nombre lista vacía.

3
00:00:06,510 --> 00:00:08,070
La idea es que pase la prueba.

4
00:00:08,220 --> 00:00:14,340
Entonces tenemos que probar este nuevo contexto cuando la lista vacía llegue a cambiar en vez de thru,

5
00:00:14,490 --> 00:00:16,340
simplemente sería fors.

6
00:00:17,220 --> 00:00:18,810
Entonces, si da falso.

7
00:00:18,930 --> 00:00:22,140
Es decir, si no encuentra examen, obviamente porque la lista vacía.

8
00:00:22,380 --> 00:00:24,750
Pasamos la prueba y esto acá no tiene sentido.

9
00:00:24,870 --> 00:00:28,980
En este nuevo contexto de prueba 12 quitamos esta línea y lo dejamos así.

10
00:00:29,550 --> 00:00:32,970
Ahora, si ejecutamos todo por acá, debería pasar.

11
00:00:35,130 --> 00:00:39,030
Todos los métodos se fijan bien ahora.

12
00:00:39,090 --> 00:00:40,440
Bueno, vamos a cerrar acá.

13
00:00:40,560 --> 00:00:42,270
Vamos a ampliar.

14
00:00:42,390 --> 00:00:43,710
Ocultar la pestaña Project.

15
00:00:44,490 --> 00:00:46,870
Si se fijan, acá se está repitiendo esto de acá.

16
00:00:47,340 --> 00:00:50,820
El Repository, el selfis, new examen servis imprime.

17
00:00:50,970 --> 00:00:52,890
Y también acá, como se está repitiendo.

18
00:00:52,980 --> 00:00:55,710
Y probablemente lo vamos a utilizar en muchos métodos.

19
00:00:55,830 --> 00:01:00,390
O por decir, en casi todos los métodos de nuestra prioritaria de que estamos probando.

20
00:01:00,480 --> 00:01:02,220
Examen servis allá en piel.

21
00:01:02,340 --> 00:01:05,760
Entonces acá podríamos colocar un método ciclo de día.

22
00:01:05,850 --> 00:01:09,870
Se acuerdan el método que se ejecuta en cada método de test?

23
00:01:10,050 --> 00:01:18,020
Entonces con al insert before it que justamente acá setup method, entonces lo seleccionamos Setup Método

24
00:01:18,300 --> 00:01:22,170
y tenemos el Before It que se ejecute antes de cada prueba.

25
00:01:22,260 --> 00:01:22,710
Perfecto.

26
00:01:22,800 --> 00:01:23,880
Entonces vamos a bajar.

27
00:01:24,150 --> 00:01:29,640
Vamos a seleccionar estos dos y lo vamos a mover con Archiv y subimos.

28
00:01:30,510 --> 00:01:31,080
Masifica.

29
00:01:31,260 --> 00:01:32,070
Lo cortamos.

30
00:01:32,160 --> 00:01:34,020
Lo movimos a este método.

31
00:01:34,110 --> 00:01:39,840
Pero para que se pueda utilizar estos atributos el repository tenemos acá el service leyde que sean

32
00:01:39,960 --> 00:01:41,130
atributos de la clase.

33
00:01:41,370 --> 00:01:48,870
Entonces vamos a definir esto acá, lo vamos a seleccionar, lo copiamos y lo pegamos acá bajamos acá

34
00:01:48,870 --> 00:01:49,860
tenemos un atributo.

35
00:01:50,040 --> 00:01:50,970
Hacemos lo mismo con esta.

36
00:01:50,970 --> 00:01:55,320
Acá copiamos, pegamos dos atributos.

37
00:01:55,560 --> 00:01:55,970
Perfecto.

38
00:01:56,010 --> 00:01:59,880
Ahora simplemente esto lo quitamos y también estoy acá.

39
00:02:00,660 --> 00:02:01,320
Lo jamás así.

40
00:02:02,340 --> 00:02:06,690
Y así se reutiliza y un poco más abajo bajamos al metro de lista vacía.

41
00:02:06,780 --> 00:02:13,590
Hasta acá quitamos todo línea se controlé aquí Control X se fijan que mucho mejor que mucho más limpio.

42
00:02:14,250 --> 00:02:21,120
Acá se prepara el escenario, se crea nuestro Mok Repository y una dependencia de la clase cérvix.

43
00:02:21,240 --> 00:02:23,700
Creamos la instancia clase servis, le pasamos la dependencia.

44
00:02:23,700 --> 00:02:25,310
Por supuesto que sería este Mok.

45
00:02:25,470 --> 00:02:31,680
Este objeto simulado no es el real y lo utilizamos en nuestra preguntaria tal como lo vimos ahora.

46
00:02:31,680 --> 00:02:35,960
Si ejecutamos todo va a funcionar tal como estaban, sin ningún problema.

47
00:02:37,150 --> 00:02:37,600
Queda mejor?

48
00:02:37,750 --> 00:02:43,300
Bien, ahora vamos a completar un poco más nuestro ejemplo, agregando otra dependencia al servis,

49
00:02:43,390 --> 00:02:48,850
otro repositorio que también va a tener una relación con el repositorio de examen, porque un examen

50
00:02:48,880 --> 00:02:50,140
podría tener preguntas.

51
00:02:50,290 --> 00:02:52,210
Entonces kaikki busquemos un examen.

52
00:02:52,300 --> 00:02:57,250
También podrían buscar el examen con sus preguntas y vamos a manejar dos repositorios.

53
00:02:57,370 --> 00:03:03,610
Uno, por ejemplo, podría realizar una consulta a una base dato X o a un micro servicio X.

54
00:03:03,820 --> 00:03:10,810
Obtenemos este listado de exámenes y después en otro dato o bien en otro micro servicio o en realidad

55
00:03:10,900 --> 00:03:11,950
en cualquier fuente.

56
00:03:12,040 --> 00:03:14,680
Podríamos modificar sus preguntas por el Leydi del examen.

57
00:03:14,830 --> 00:03:19,870
Podría estar en repositorios, en bases de datos o en servidores separados?

58
00:03:19,990 --> 00:03:25,240
La pregunta con exámenes típicamente en una arquitectura de micro servicios es muy típico para poder

59
00:03:25,240 --> 00:03:30,370
balancear la carga de lo distintos componentes, separar los roles de nuestra aplicación y que no sea

60
00:03:30,370 --> 00:03:34,810
todo un monolito, sea un diseño orientado al dominio, mucho más desacoplar.

61
00:03:35,140 --> 00:03:35,890
Esa sería la idea.

62
00:03:36,040 --> 00:03:38,710
Entonces lo primero que tenemos que hacer es crear una nueva interfaz.

63
00:03:38,740 --> 00:03:42,640
Pregunta Repositorio y busca las preguntas por examen.

64
00:03:42,730 --> 00:03:44,530
Heidy Bien, para eso nos vamos.

65
00:03:44,530 --> 00:03:52,840
Aidé Alpaca explores nos vamos a ir al РАМКАХ por acá repositorios vamos a crear una interfaz con alt

66
00:03:52,900 --> 00:03:53,570
insert.

67
00:03:54,160 --> 00:03:54,970
Buscamos por acá.

68
00:03:55,020 --> 00:03:55,690
Bueno, ya va a.

69
00:03:56,290 --> 00:03:57,280
Pregunta Repositorio.

70
00:04:01,560 --> 00:04:01,850
Perdón.

71
00:04:01,950 --> 00:04:02,640
Interfaz.

72
00:04:02,760 --> 00:04:03,270
Interfaz?

73
00:04:03,300 --> 00:04:04,230
No es clase.

74
00:04:04,410 --> 00:04:06,880
Entonces simplemente voy a modificar acá, acá.

75
00:04:06,900 --> 00:04:09,180
Public interfaz.

76
00:04:10,740 --> 00:04:11,220
Perfecto.

77
00:04:11,490 --> 00:04:12,180
Una interfaz.

78
00:04:12,420 --> 00:04:16,080
Vamos a bajar con un método que devuelva a la lista preguntas.

79
00:04:16,230 --> 00:04:18,990
Entonces un list de preguntas.

80
00:04:19,350 --> 00:04:22,020
Pero recuerda que la pregunta la tenemos como el tipo String.

81
00:04:22,620 --> 00:04:25,560
Entonces el tipo String vamos a importar.

82
00:04:25,610 --> 00:04:26,070
Listo.

83
00:04:26,280 --> 00:04:26,850
Por acá.

84
00:04:27,000 --> 00:04:27,810
De lleba útil.

85
00:04:29,440 --> 00:04:31,330
Faen preguntas por examen Heidy.

86
00:04:36,720 --> 00:04:37,260
Perfecto.

87
00:04:37,440 --> 00:04:38,690
Ahí tiene una interfaz repository.

88
00:04:38,790 --> 00:04:43,290
También podríamos tener una implementación, una clase, pero para nuestras preguntaria convicto da

89
00:04:43,290 --> 00:04:49,080
lo mismo, porque vamos a hacer un mock de este repositorio que es una dependencia del servis.

90
00:04:49,230 --> 00:04:53,940
Bien, el siguiente paso es implementar un método en el servis, en la interfaz primero y después lo

91
00:04:53,940 --> 00:04:54,420
implementamos.

92
00:04:54,420 --> 00:04:56,940
La clase implementa allá en piel.

93
00:04:57,030 --> 00:05:02,430
Este método que vaya a buscar la pregunta no cierto por el examen Heidy y devuelva el examen con todas

94
00:05:02,430 --> 00:05:03,150
sus preguntas.

95
00:05:03,180 --> 00:05:05,730
Entonces lo mismo nos vamos a repository.

96
00:05:05,760 --> 00:05:06,810
Bueno, ya tengo un interfaz.

97
00:05:06,870 --> 00:05:09,990
Ahora lanzamos a Servis a la interfaz servis.

98
00:05:10,410 --> 00:05:12,540
Por acá vamos a agregar un nuevo método.

99
00:05:12,690 --> 00:05:13,830
Va a devolver un examen.

100
00:05:14,610 --> 00:05:19,080
También podría ser una optional, pero para variar lo vamos a hacer con examen en realidad.

101
00:05:19,180 --> 00:05:21,750
Fin examen por nombre con preguntas.

102
00:05:22,320 --> 00:05:23,460
Fin examen

103
00:05:26,550 --> 00:05:28,320
que pasamos el nombre del examen.

104
00:05:30,150 --> 00:05:31,020
Bien se fijan.

105
00:05:31,410 --> 00:05:32,430
Muy parecido Finn.

106
00:05:32,430 --> 00:05:37,830
Examen por nombre, pero solamente Guolfe El examen como un opcional y acá devuelve el examen problema

107
00:05:37,830 --> 00:05:38,610
con las preguntas.

108
00:05:38,670 --> 00:05:43,500
Por lo tanto, dentro este método deberíamos invocar este método acá, obtener el examen, obtener el

109
00:05:43,500 --> 00:05:48,690
Heidy y mediante Leidy ir a buscar al otro repositorio la preguntas de ese examen.

110
00:05:49,230 --> 00:05:54,900
Entonces ahora con control TAF nos vamos a ir a servis implemento este de acá.

111
00:05:55,110 --> 00:05:59,340
Vamos a implementar acá este nuevo método sobre el error implementar métodos.

112
00:05:59,430 --> 00:06:03,890
Los seleccionamos ok, entonces acá una dependencia privat.

113
00:06:04,890 --> 00:06:10,000
Pregunta repositorio y también lo inicializamos el constructor acá.

114
00:06:10,050 --> 00:06:14,490
Entonces por acá en el constructor Koma voy a ocultar el menú este de acá.

115
00:06:14,580 --> 00:06:16,920
Nos aparte de completa esto acá lo cerramos.

116
00:06:17,070 --> 00:06:19,290
Pregunta Repository Repository.

117
00:06:19,740 --> 00:06:21,300
Pregunta Repositorio perfecto.

118
00:06:21,300 --> 00:06:22,020
Bajamos.

119
00:06:22,110 --> 00:06:24,030
Bajamos diez.

120
00:06:24,100 --> 00:06:24,930
Punto.

121
00:06:24,960 --> 00:06:27,630
Pregunta Repository igual.

122
00:06:27,960 --> 00:06:28,950
Pregunta Repository.

123
00:06:29,490 --> 00:06:30,480
Ahí tenemos la dependencia.

124
00:06:30,750 --> 00:06:36,120
Inyectamos por constructor estos dos argumentos, estos dos repository que son dependencia.

125
00:06:36,940 --> 00:06:42,660
Entonces el primero ya sabemos que se llama repositorio para ir a buscar un examen por el nombre o por

126
00:06:42,660 --> 00:06:48,570
el Heidy o por lo que sea, que podría ser una base de datos específica y otro repositorio que podría

127
00:06:48,570 --> 00:06:54,300
ser otra base, dato específica o incluso la misma base dato, pero en otra tabla en fiso mucha alternativa

128
00:06:54,510 --> 00:06:59,550
depende del contexto de nuestra aplicación en el diseño, los requisitos negocio, las reglas.

129
00:06:59,640 --> 00:07:04,530
Como ya he mencionado, también podría ser incluso otro servidor, otro servicio, una API rest.

130
00:07:04,740 --> 00:07:15,690
Bien, entonces acá vamos a obtener el examen un optional de examen examen optional por acá lo tenemos

131
00:07:15,990 --> 00:07:16,560
igual.

132
00:07:16,680 --> 00:07:20,700
Invocamos el método Find, estaban por el nombre y le pasamos el nombre.

133
00:07:20,760 --> 00:07:21,300
Se fijan?

134
00:07:21,660 --> 00:07:25,770
Al final estamos invocando este método de acá para obtener el examen.

135
00:07:26,190 --> 00:07:34,350
Preguntamos con un NIF, vamos a preguntar si está presente de examen optional punto is present perfecto.

136
00:07:34,500 --> 00:07:42,030
Vamos a tocar la preguntas list de preguntas de strength también pudiesse pregunta vamos a importar

137
00:07:42,030 --> 00:07:44,190
el list acá de ya útil.

138
00:07:46,600 --> 00:07:54,850
Preguntas y usamos el otro repositorio Pregunta Repositorio Punto Bucar pregunta por examen Heidy Pero

139
00:07:54,850 --> 00:07:59,020
ya tenemos el examen o al menos el optional para poder obtener el examen.

140
00:07:59,170 --> 00:08:00,520
De hecho lo podríamos definir acá.

141
00:08:01,930 --> 00:08:07,600
Examen no, igual no lo vamos a definir, solamente definimos la variable.

142
00:08:07,690 --> 00:08:17,390
Entonces acá obtenemos el examen examen igual examen optional punto or el 0u документы cualquiera de

143
00:08:17,470 --> 00:08:19,660
dos get o or el 0.

144
00:08:19,930 --> 00:08:27,970
Bien, ahí tenemos el examen, nos vamos acá examen punto inquieta y vamos a buscar la pregunta por

145
00:08:27,970 --> 00:08:28,450
el examen.

146
00:08:28,450 --> 00:08:31,060
Heidy, cuál será el siguiente paso?

147
00:08:31,120 --> 00:08:40,030
Examen, punto, set set preguntas y le pasamos preguntas, se la asignamos al examen, bajamos y devolvemos

148
00:08:40,130 --> 00:08:41,800
examen y listo.

149
00:08:41,800 --> 00:08:48,340
Ya tenemos nuestro servis y un nuevo contexto de prueba que probar un nuevo método el examen con sus

150
00:08:48,340 --> 00:08:48,940
preguntas.

151
00:08:49,090 --> 00:08:53,050
Entonces para resumir, nuestra clase servis tiene dos forma de obtener el examen.

152
00:08:53,140 --> 00:08:59,170
Una como lo vimos anteriormente, solamente el examen sin su pregunta obtiene el examen en extreman

153
00:08:59,170 --> 00:09:02,530
repositorio o bien obtener el examen con su pregunta.

154
00:09:02,650 --> 00:09:08,680
Utilizamos este método, obtenemos el examen si está presente, vamos a ir al otro repositorio al de

155
00:09:08,680 --> 00:09:12,040
pregunta a obtener la pregunta de ese examen en particular.

156
00:09:12,100 --> 00:09:16,820
Pasando Leydi des examen y no importa, no interesa cómo esté implementado.

157
00:09:16,840 --> 00:09:22,300
Pregunta Repositorio Recuerden, es una dependencia externa, no es algo que queremos probar, ni tampoco

158
00:09:22,300 --> 00:09:27,190
no nos interesa saber cómo está implementado y tampoco si viene de una base auto o de cualquier tipo,

159
00:09:27,190 --> 00:09:28,480
fuente o API rest.

160
00:09:28,600 --> 00:09:31,390
Eso es completamente ajeno a nuestra aplicación.

161
00:09:31,510 --> 00:09:36,460
Es una parte externa de nuestra aplicación que si estamos integrando, pero lo importante es probar

162
00:09:36,550 --> 00:09:37,450
nuestro código.

163
00:09:37,600 --> 00:09:41,150
Examen Servis implementa y por supuesto estos van a ser mok.

164
00:09:41,350 --> 00:09:46,570
Vamos a hacer un mock de pregunta repositorio al igual como lo hicimos con Extreman Repositorio.

165
00:09:46,660 --> 00:09:48,820
Vamos a simular estos dos objetos.

166
00:09:48,940 --> 00:09:51,850
Bien, nos vamos a ir entonces a nuestra clase de test.

167
00:09:52,780 --> 00:09:53,140
Perdón.

168
00:09:53,200 --> 00:10:00,680
Acá yo tengo que modificar porque tenemos un nuevo atributo y también dependencia de la pregunta.

169
00:10:00,820 --> 00:10:03,610
Entonces por acá vamos a tener un nuevo atributo.

170
00:10:04,090 --> 00:10:08,770
Pregunta repositorio de vamos a llamar exactamente igual.

171
00:10:08,800 --> 00:10:14,950
Pregunta el repositorio y el examen repository sería repository, simplemente repositorio y para examen

172
00:10:15,040 --> 00:10:17,260
y pregunta repository para pregunta.

173
00:10:17,530 --> 00:10:21,430
Bien, lo siguiente es crear el mock de pregunta repositorio.

174
00:10:21,490 --> 00:10:28,720
Entonces por acá en el zETAp de chocar voy a bajar porque tengo un espacio y acá bajamos.

175
00:10:29,050 --> 00:10:37,090
Creamos el mock de pregunta repositorio igual mock tal como lo hicimos y pasamos en nombre de la clase

176
00:10:37,180 --> 00:10:37,860
Odra Interface.

177
00:10:37,930 --> 00:10:42,640
En este caso es una interfaz, pero también podría ser una clase que implementa una interfaz con alguna

178
00:10:42,640 --> 00:10:43,930
implementación cualquiera.

179
00:10:44,410 --> 00:10:49,590
Pregunta Repositorio Punto Class y lo pasamos por constructor como segundo argumento.

180
00:10:49,600 --> 00:10:53,760
Por eso marca un error, porque el constructor recibe ambas dependencias.

181
00:10:54,700 --> 00:10:57,370
Pregunta Repositorio Ta listo.

182
00:10:57,610 --> 00:11:02,950
Ahora solamente faltaría crear algunos métodos de prueba para la pregunta, pero bueno, eso lo dejamos

183
00:11:02,950 --> 00:11:05,140
para la siguiente clase para que no sea tan extenso.

184
00:11:05,380 --> 00:11:08,170
Lo dejamos así y nos vemos en la siguiente clase.
