1
00:00:00,120 --> 00:00:06,270
Bien, continuemos con manejo de errores, excepciones en juntito en unitaria, lidié también como podemos

2
00:00:06,270 --> 00:00:08,250
esperar un valor que devuelve un método.

3
00:00:08,260 --> 00:00:14,760
También podemos esperar un tipo de error decepción que lance un método y evaluar si efectivamente se

4
00:00:14,760 --> 00:00:15,810
lanzó la excepción.

5
00:00:15,870 --> 00:00:23,850
Por ejemplo, un nulo interseccion o un number format exception se fijan validar que ese método en cierto

6
00:00:23,850 --> 00:00:28,560
escenario con ciertos parámetros de entrada, debiese lanzar un error.

7
00:00:28,620 --> 00:00:29,190
Una excepción.

8
00:00:29,310 --> 00:00:32,250
Y es lo que vamos a probar y que sea de un tipo específico.

9
00:00:32,430 --> 00:00:37,020
Nos vamos a ir a los package alt 1 enter y nos vamos a esa receta.

10
00:00:37,140 --> 00:00:40,740
Vamos a crear un package en Java Main Java por acá.

11
00:00:40,890 --> 00:00:41,880
Acá tenemos models.

12
00:00:42,000 --> 00:00:43,320
Vamos a crear otro package.

13
00:00:43,500 --> 00:00:46,610
Entonces con alt insert por acá package.

14
00:00:46,950 --> 00:00:48,750
En vez de models lo vamos a eliminar.

15
00:00:49,770 --> 00:00:52,890
Vamos a colocar exception excepciones.

16
00:00:52,950 --> 00:00:54,900
Y acá vamos a crear una excepción.

17
00:00:55,110 --> 00:00:56,010
En plural podríamos tener.

18
00:00:56,010 --> 00:01:00,330
Más bien tenemos models exception dentro, deception también alt insert.

19
00:01:00,510 --> 00:01:01,860
Vamos a crear una clase.

20
00:01:02,130 --> 00:01:04,230
Vamos a llamar dinero insuficiente.

21
00:01:04,320 --> 00:01:08,160
Es Action, una clase que vamos a heredar de renta Exception.

22
00:01:13,840 --> 00:01:23,230
Bien extends reinte entonces ragtime Exception bajamos al inserto, vamos a implementar en constructor,

23
00:01:23,320 --> 00:01:24,690
pero que pase el mensaje.

24
00:01:25,780 --> 00:01:28,820
Para poder personalizar un error, el mensaje, un mensaje error.

25
00:01:29,030 --> 00:01:35,500
Bien, ahí tenemos la clase Exception, volvemos, pero nos vamos a cuenta texto y vamos a implementar

26
00:01:35,500 --> 00:01:36,160
nuestro test.

27
00:01:36,250 --> 00:01:42,910
Recuerden, primero creamos el test, después implementamos el lanzamiento excepción en la clase, cuenta

28
00:01:43,060 --> 00:01:43,690
en débito.

29
00:01:44,200 --> 00:01:45,880
Acá hay equivalían cierto?

30
00:01:45,880 --> 00:01:50,440
Acepto que una vez que llamo retor monto, no sea cero ni menor que cero.

31
00:01:50,680 --> 00:01:52,930
Es decir, cero puede ser, pero no puede ser menor.

32
00:01:53,050 --> 00:01:54,310
No puede ser negativo así.

33
00:01:54,580 --> 00:01:58,240
Es decir, la persona que está realizando un pago o una transferencia tiene que tener ese monto en la

34
00:01:58,240 --> 00:02:02,170
cuenta, de lo contrario no lo va a poder realizar y eso tiene que validar.

35
00:02:02,400 --> 00:02:04,650
Bien, volvemos a test, cuenta texto.

36
00:02:05,320 --> 00:02:10,690
Vamos a escribir un humito al inser text método legamos.

37
00:02:10,690 --> 00:02:13,330
Se llama texto dinero insuficiente.

38
00:02:13,420 --> 00:02:13,960
Exception

39
00:02:19,990 --> 00:02:20,500
cuenta.

40
00:02:21,490 --> 00:02:22,150
Bajamos.

41
00:02:23,410 --> 00:02:24,160
Cuenta.

42
00:02:32,490 --> 00:02:40,050
Viven Cemal Bueno y pude mantener una misma línea con los mismos datos mil coma un dos tres cuatro cinco

43
00:02:41,010 --> 00:02:41,400
electo.

44
00:02:41,640 --> 00:02:43,050
Hoy tenemos el dato de prueba.

45
00:02:43,350 --> 00:02:48,420
Bien, entonces ahora tenemos que probar que efectivamente, cuando invocamos el método débito, vamos

46
00:02:48,420 --> 00:02:53,730
a realizar una trasferencia y si colocamos un monto mayor al saldo que tenemos en la cuenta, debiese

47
00:02:53,730 --> 00:02:54,960
lanzar esa excepción.

48
00:02:55,110 --> 00:02:56,430
Dinero es suficiente, septón?

49
00:02:56,460 --> 00:02:59,550
Si no la lanza es porque algo está mal y no pasa la prueba.

50
00:02:59,850 --> 00:03:06,630
Bien, para eso tienes que utilizar hacer John's invocando el método hacer frus que para manejo acepcion.

51
00:03:06,810 --> 00:03:12,330
Entonces hacer por acá tenemos frus de lanzar una excepción.

52
00:03:12,660 --> 00:03:13,380
Perfecto.

53
00:03:13,560 --> 00:03:19,560
Lleca recibe dos argumentos primero en nombre de la clase Exception que esperamos se dejan cualquier

54
00:03:19,560 --> 00:03:23,000
clase que sea del tipo cero labelo.

55
00:03:23,190 --> 00:03:30,990
Ese lánzale cualquier objeto exepciones del tipo fuuu label lánzale está mareando de ranka excepto uno

56
00:03:30,990 --> 00:03:31,440
cierto?

57
00:03:31,530 --> 00:03:34,650
Nuestra clase escepción por lo tanto es una sala, así que estaría perfecto.

58
00:03:34,800 --> 00:03:41,220
Vamos a colocar el nombre de nuestra clase Deception, la cual esperamos que se lance dinero insuficiente.

59
00:03:42,150 --> 00:03:48,420
Ahí tenemos dinero suficiente excepto punto class coma y acá una pezon lanta.

60
00:03:48,540 --> 00:03:52,230
Se acuerdan que haya mencionado que Yunis 5 Júpiter?

61
00:03:52,380 --> 00:03:57,360
Una de las características versus la versión anterior es que soporta presiones lanta y después vamos

62
00:03:57,360 --> 00:04:02,880
a ver más ejemplos, pero por ahora todo lo que sea manejo de excepción lo implementamos dentro de esta

63
00:04:02,970 --> 00:04:03,390
expresión.

64
00:04:03,390 --> 00:04:04,780
Lanta una función de fecha.

65
00:04:04,890 --> 00:04:08,520
Entonces vamos a colocar los argumentos que en realidad es sin argumentos.

66
00:04:08,520 --> 00:04:10,590
Lo hagamos vacío flecha.

67
00:04:11,250 --> 00:04:14,370
Y acá las llaves de nuestra persona lanta punto y coma.

68
00:04:14,400 --> 00:04:15,330
Cerramos con punto y coma.

69
00:04:15,720 --> 00:04:21,510
Bien Lleca, invocamos el método que va a lanzar esta acepción, es decir, que supuestamente debería

70
00:04:21,510 --> 00:04:23,850
lanzar esta sección en cierto escenario.

71
00:04:24,150 --> 00:04:28,190
Entonces cuenta punto débito, no?

72
00:04:28,210 --> 00:04:28,470
Cierto.

73
00:04:28,500 --> 00:04:31,530
Vamos a transferir un monto new být décima.

74
00:04:31,710 --> 00:04:33,660
Tiene que ser un monto mayor al que tenemos en la cuenta.

75
00:04:33,660 --> 00:04:40,980
En la cuenta tenemos 1000 reseque, cuyo monto sobre 1000, por ejemplo 1001 mil dos mil quinientos,

76
00:04:41,370 --> 00:04:44,610
por ejemplo mil quinientos debiese lanzar esta sección.

77
00:04:46,070 --> 00:04:50,510
Punto y coma a otro punto importante es que esté cruz.

78
00:04:50,780 --> 00:04:54,440
En realidad también devuelve el objeto, excepción que se lanza.

79
00:04:54,500 --> 00:04:57,890
Por lo tanto, acá se captura internamente, sea capturar, sea manejar.

80
00:04:58,040 --> 00:05:03,620
Y este método acá va a devolver el tipo, la instancia que del tipo dinero.

81
00:05:04,370 --> 00:05:08,870
Aquí lo podremos colocar del tipo más genérico, no lo mismo, porque la idea es obtener el mensaje

82
00:05:08,870 --> 00:05:09,110
error.

83
00:05:09,170 --> 00:05:14,480
Y también podremos comparar el mensaje error y asegurarnos que el mensaje que se lanza sea a uno que

84
00:05:14,480 --> 00:05:15,680
estemos esperando.

85
00:05:15,860 --> 00:05:21,890
Y lo mismo eso lo podemos comparar con el hacer y quarts con el valor esperado y compararlo con el valor

86
00:05:21,950 --> 00:05:23,030
real o actual.

87
00:05:23,420 --> 00:05:29,990
Vamos a colocar Exception Exception igual esto se fijan.

88
00:05:30,350 --> 00:05:34,980
Este método devuelve el objeto escepción y un objeto cesion obtenemos el mensaje.

89
00:05:35,300 --> 00:05:44,900
Entonces del tipo string, por ejemplo string actual o real como le queramos llamar exception punto

90
00:05:45,230 --> 00:05:47,860
get mensajea get me sacho

91
00:05:51,070 --> 00:05:54,080
es trenca, por ejemplo esperado.

92
00:05:55,640 --> 00:06:01,070
No sé, vamos a colocar que nuestro mensaje esperado va a ser dinero insuficiente.

93
00:06:06,710 --> 00:06:10,880
Hacer cuales esperado versus actuar?

94
00:06:11,900 --> 00:06:15,160
Vamos a comparar entonces final se fijan en el mismo método.

95
00:06:15,350 --> 00:06:18,020
Estamos haciendo dos pruebas unitarias que está muy relacionada.

96
00:06:18,020 --> 00:06:21,170
Primero evaluamos el lanzamiento escepcion que es el mismo.

97
00:06:21,350 --> 00:06:23,600
Luego lo capturamos perfecto.

98
00:06:23,810 --> 00:06:25,880
Si todo sale bien, vamos a evaluar.

99
00:06:26,030 --> 00:06:33,560
Vamos a probar el mensaje error que sea el correcto el que efectivamente se viviese de incluir a cocinar.

100
00:06:33,620 --> 00:06:34,870
Cuando se lanza la acepción.

101
00:06:35,000 --> 00:06:38,180
Pero ojo, todavía no hemos implementado ningún método en cuenta.

102
00:06:38,630 --> 00:06:42,830
Todavía no estamos implementando este código de manejo decepción en el método débito.

103
00:06:43,550 --> 00:06:44,570
Solamente estamos probando.

104
00:06:44,930 --> 00:06:47,900
Entonces ahora vamos a ejecutar como siempre.

105
00:06:49,730 --> 00:06:50,270
Y ver qué pasa.

106
00:06:50,300 --> 00:06:51,560
Obviamente la falla no es cierto.

107
00:06:51,770 --> 00:06:58,310
Primero dice que se esperaba dinero es suficiente Сервис John's, pero no devolvió nada.

108
00:06:58,460 --> 00:07:03,500
En realidad se fijan, no pasó nada y el otro error ni siquiera se ejecuta.

109
00:07:03,560 --> 00:07:07,910
Acá el assert y cuas, porque ni siquiera está lanzando la excepción.

110
00:07:08,280 --> 00:07:09,860
Entonces eso es lo que vamos a implementar ahora.

111
00:07:09,950 --> 00:07:11,900
Primero probamos, luego implementamos.

112
00:07:12,050 --> 00:07:12,230
Bien.

113
00:07:12,230 --> 00:07:12,980
Vamos a cerrar.

114
00:07:13,640 --> 00:07:14,750
Vamos a quitar esto.

115
00:07:15,050 --> 00:07:15,740
Ocultar.

116
00:07:16,750 --> 00:07:17,500
Y continuamos.

117
00:07:17,650 --> 00:07:20,290
No vamos a ir a cuenta por acá en débito.

118
00:07:20,620 --> 00:07:26,290
Bueno, lo primero antes de asignar acá vamos a modificar y vamos a asignar a una variable local del

119
00:07:26,290 --> 00:07:29,710
método que vamos a colocar el tipo, porque es una variable local.

120
00:07:29,890 --> 00:07:30,690
Bit decimal.

121
00:07:31,060 --> 00:07:32,140
Nombre variable.

122
00:07:32,500 --> 00:07:33,400
Nuevo saldo.

123
00:07:34,810 --> 00:07:37,360
Bajamos y comparamos nuevo salto.

124
00:07:37,510 --> 00:07:38,410
Entonces con un NIF.

125
00:07:39,640 --> 00:07:40,750
Nuevo salto.

126
00:07:41,230 --> 00:07:41,890
Punto.

127
00:07:42,070 --> 00:07:43,390
Recuerden que es un bidé.

128
00:07:43,390 --> 00:07:44,680
Si comparamos con él.

129
00:07:44,680 --> 00:07:46,660
Comparto comparto.

130
00:07:46,750 --> 00:07:51,520
Lo comparamos con bit decimal cero bit decimal punto cero.

131
00:07:51,880 --> 00:07:58,900
Entonces, si esta expresión devuelve un valor negativo, es decir menos 1, significa que cero es mayor

132
00:07:58,960 --> 00:08:00,340
que nuevo saldo.

133
00:08:00,460 --> 00:08:06,130
Por lo tanto, la persona no tiene dinero suficiente para realizar la transacción y viviésemos de lanzar

134
00:08:06,250 --> 00:08:06,830
una excepción.

135
00:08:07,190 --> 00:08:08,300
Entonces acá comparamos.

136
00:08:08,680 --> 00:08:18,190
Entonces, si en menor o negativo, en menor que 0 perfecto, lanzamos la excepción throw new dinero

137
00:08:18,190 --> 00:08:21,310
insuficiente excepto por constructor.

138
00:08:21,400 --> 00:08:24,640
Recuerden que implementamos el constructor para pasar un mensaje personalizado.

139
00:08:24,790 --> 00:08:27,640
Vamos a colocar el mismo mensaje con el cual queremos probar.

140
00:08:27,730 --> 00:08:28,900
Dinero es suficiente.

141
00:08:30,100 --> 00:08:31,390
Dinero insuficiente.

142
00:08:34,160 --> 00:08:34,570
Perfecto.

143
00:08:34,600 --> 00:08:40,360
Pero si todo sale bien y no lanza ninguna excepción, entonces tenga que asignar 10 puntos.

144
00:08:40,360 --> 00:08:43,030
Saldo igual.

145
00:08:43,150 --> 00:08:43,960
Nuevo saldo.

146
00:08:45,250 --> 00:08:45,760
Perfecto.

147
00:08:45,880 --> 00:08:47,430
Importante asignar, cierto.

148
00:08:47,680 --> 00:08:50,260
Si no se cumple la regla negocio lanzar una sesión.

149
00:08:50,350 --> 00:08:51,970
Y esto no se realiza.

150
00:08:52,060 --> 00:08:53,470
No se realiza la transacción.

151
00:08:53,590 --> 00:08:56,320
No se le asigna el valor del nuevo saldo a saldo.

152
00:08:56,530 --> 00:08:57,190
No se resta.

153
00:08:57,190 --> 00:08:57,700
Se fijan.

154
00:08:57,850 --> 00:09:00,970
Simplemente no se lleva a cabo la transacción.

155
00:09:01,170 --> 00:09:01,870
Y estamos listos.

156
00:09:01,960 --> 00:09:04,150
Ahora tenemos implementado manejo acepcion.

157
00:09:04,570 --> 00:09:04,780
Bien.

158
00:09:04,810 --> 00:09:06,670
Volvamos entonces con control TAF.

159
00:09:06,970 --> 00:09:10,270
Volvemos a cuenta test y vamos a probar un clic afuera.

160
00:09:10,360 --> 00:09:11,740
Ejecutamos como siempre.

161
00:09:14,030 --> 00:09:15,500
De ahí pasó, pasó todas las pruebas.

162
00:09:16,130 --> 00:09:17,090
Dinero suficiente.

163
00:09:17,150 --> 00:09:20,720
Está perfecto, en realidad, claro, pusimos 1500.

164
00:09:20,810 --> 00:09:23,420
La persona no tiene dinero suficiente.

165
00:09:23,840 --> 00:09:27,470
Lanza excepcion, que está bien, porque acá estamos simulando el error.

166
00:09:27,560 --> 00:09:33,110
Lo queremos producir de forma intencional para ver cómo se está manejando el error.

167
00:09:33,230 --> 00:09:36,950
La acepción dinero suficiente se lanza y es la esperada.

168
00:09:37,310 --> 00:09:37,880
Así que está bien.

169
00:09:37,970 --> 00:09:39,770
Luego probamos el mensaje error.

170
00:09:39,860 --> 00:09:44,520
Ahora, qué pasa si cambiamos el dinero suficiente y le ponemos otro texto?

171
00:09:44,540 --> 00:09:46,310
Por ejemplo, dinero suficiente.

172
00:09:46,610 --> 00:09:52,850
En la cuenta se fijan este de acá va a pasar, pero este de acá no pasa.

173
00:09:53,450 --> 00:09:55,850
Se fijan porque no es igual, no va a ser igual a la esperada.

174
00:09:56,120 --> 00:09:59,120
Ejecutamos y la prueba falla.

175
00:09:59,570 --> 00:10:03,860
Esperado dinero suficiente en la cuenta actual dinero suficiente.

176
00:10:03,980 --> 00:10:07,680
Este es el mensaje real que se lanza en la acepción Yetta.

177
00:10:07,700 --> 00:10:08,600
Qué estamos esperando?

178
00:10:08,750 --> 00:10:09,350
No es igual.

179
00:10:09,470 --> 00:10:10,670
Así que está bien.

180
00:10:10,820 --> 00:10:12,230
Estamos probando correctamente.

181
00:10:13,700 --> 00:10:14,390
Lo dejamos como estaba.

182
00:10:15,050 --> 00:10:17,480
Ahora, qué pasa si en vez de dinero es suficiente?

183
00:10:17,570 --> 00:10:18,200
Exception?

184
00:10:18,290 --> 00:10:18,740
No sé.

185
00:10:18,950 --> 00:10:21,230
Vamos a colocar otro tipo de clase.

186
00:10:21,240 --> 00:10:26,120
Decepción, por poner un ejemplo, un number forma exception y ni siquiera necessary que lo hagan solamente

187
00:10:26,120 --> 00:10:28,370
para que lo tengan en cuenta y lo vean.

188
00:10:29,330 --> 00:10:31,570
Un Amper formato Exception.

189
00:10:32,240 --> 00:10:32,780
Acá lo tenemos.

190
00:10:32,870 --> 00:10:33,230
Triplican.

191
00:10:33,320 --> 00:10:38,340
Supongamos que esperábamos este error, pero en realidad se va a lanzar el dinero suficiente.

192
00:10:38,630 --> 00:10:40,460
Entonces esta prueba no se pasa.

193
00:10:40,880 --> 00:10:41,360
Veamos.

194
00:10:45,700 --> 00:10:47,830
Inesperada acepción del tipo.

195
00:10:47,970 --> 00:10:53,650
Bueno, se espera un ámber format exception, pero finalmente se lanza un dinero en suficiente septón.

196
00:10:53,860 --> 00:10:55,480
No coinciden los tipos.

197
00:10:55,620 --> 00:10:59,090
Entonces esta forma podemos evaluar, probar el manejo de error.

198
00:10:59,380 --> 00:11:00,910
Hará lo correcto en la prueba.

199
00:11:01,060 --> 00:11:03,700
Es como lo teníamos con el dinero suficiente.

200
00:11:05,880 --> 00:11:06,600
Eso es lo correcto.

201
00:11:06,780 --> 00:11:09,010
Ahora, bueno, va a pasar esta prueba.

202
00:11:09,210 --> 00:11:12,930
Pero qué pasaría si Test Débito está acá?

203
00:11:13,470 --> 00:11:19,830
Lo modificamos y en débito colocamos, no sé, 2000 por ejemplo, tampoco en esa serie que lo hagas

204
00:11:19,830 --> 00:11:22,170
solamente para que lo vean y lo tengan en cuenta.

205
00:11:22,290 --> 00:11:23,430
Voy a colocar dos mil.

206
00:11:23,880 --> 00:11:29,430
Obviamente va a fallar porque lanza la selección y ni siquiera va a pasar el test, ni siquiera se va

207
00:11:29,430 --> 00:11:33,900
a ejecutar esto de acá, porque primero se lanza la excepción en débito y falla.

208
00:11:33,990 --> 00:11:36,330
Lo demás ni siquiera se evalúa bien.

209
00:11:36,570 --> 00:11:38,520
Veamos un clic afuera.

210
00:11:38,610 --> 00:11:39,480
Ejecutamos todo.

211
00:11:42,300 --> 00:11:48,780
Se fijan, pasa dinero suficiente porque está bien, acepto, pero débito no pasa porque se lanza la

212
00:11:48,780 --> 00:11:54,420
excepción, dinero insuficiente, excepto se fijan, se lanza recesión, falla la prueba automáticamente.

213
00:11:54,810 --> 00:11:58,040
Entonces todo bien, lo están probando con nuestra regla negocio.

214
00:11:58,200 --> 00:11:58,390
Bien.

215
00:11:58,470 --> 00:12:01,080
Vamos a dejar como estaba Conscien.

216
00:12:02,130 --> 00:12:04,040
Volvemos a probar y está todo bien.

217
00:12:05,280 --> 00:12:05,850
Perfecto.

218
00:12:06,180 --> 00:12:10,740
Bueno, eso sería manejo decepciones co Cunit, pruebas unitarias.

219
00:12:10,830 --> 00:12:13,630
Lo dejamos hasta acá y nos vemos en la siguiente clase.
