Bien, continuemos con manejo de errores, excepciones en juntito en unitaria, lidié también como podemos
esperar un valor que devuelve un método.
También podemos esperar un tipo de error decepción que lance un método y evaluar si efectivamente se
lanzó la excepción.
Por ejemplo, un nulo interseccion o un number format exception se fijan validar que ese método en cierto
escenario con ciertos parámetros de entrada, debiese lanzar un error.
Una excepción.
Y es lo que vamos a probar y que sea de un tipo específico.
Nos vamos a ir a los package alt 1 enter y nos vamos a esa receta.
Vamos a crear un package en Java Main Java por acá.
Acá tenemos models.
Vamos a crear otro package.
Entonces con alt insert por acá package.
En vez de models lo vamos a eliminar.
Vamos a colocar exception excepciones.
Y acá vamos a crear una excepción.
En plural podríamos tener.
Más bien tenemos models exception dentro, deception también alt insert.
Vamos a crear una clase.
Vamos a llamar dinero insuficiente.
Es Action, una clase que vamos a heredar de renta Exception.
Bien extends reinte entonces ragtime Exception bajamos al inserto, vamos a implementar en constructor,
pero que pase el mensaje.
Para poder personalizar un error, el mensaje, un mensaje error.
Bien, ahí tenemos la clase Exception, volvemos, pero nos vamos a cuenta texto y vamos a implementar
nuestro test.
Recuerden, primero creamos el test, después implementamos el lanzamiento excepción en la clase, cuenta
en débito.
Acá hay equivalían cierto?
Acepto que una vez que llamo retor monto, no sea cero ni menor que cero.
Es decir, cero puede ser, pero no puede ser menor.
No puede ser negativo así.
Es decir, la persona que está realizando un pago o una transferencia tiene que tener ese monto en la
cuenta, de lo contrario no lo va a poder realizar y eso tiene que validar.
Bien, volvemos a test, cuenta texto.
Vamos a escribir un humito al inser text método legamos.
Se llama texto dinero insuficiente.
Exception
cuenta.
Bajamos.
Cuenta.
Viven Cemal Bueno y pude mantener una misma línea con los mismos datos mil coma un dos tres cuatro cinco
electo.
Hoy tenemos el dato de prueba.
Bien, entonces ahora tenemos que probar que efectivamente, cuando invocamos el método débito, vamos
a realizar una trasferencia y si colocamos un monto mayor al saldo que tenemos en la cuenta, debiese
lanzar esa excepción.
Dinero es suficiente, septón?
Si no la lanza es porque algo está mal y no pasa la prueba.
Bien, para eso tienes que utilizar hacer John's invocando el método hacer frus que para manejo acepcion.
Entonces hacer por acá tenemos frus de lanzar una excepción.
Perfecto.
Lleca recibe dos argumentos primero en nombre de la clase Exception que esperamos se dejan cualquier
clase que sea del tipo cero labelo.
Ese lánzale cualquier objeto exepciones del tipo fuuu label lánzale está mareando de ranka excepto uno
cierto?
Nuestra clase escepción por lo tanto es una sala, así que estaría perfecto.
Vamos a colocar el nombre de nuestra clase Deception, la cual esperamos que se lance dinero insuficiente.
Ahí tenemos dinero suficiente excepto punto class coma y acá una pezon lanta.
Se acuerdan que haya mencionado que Yunis 5 Júpiter?
Una de las características versus la versión anterior es que soporta presiones lanta y después vamos
a ver más ejemplos, pero por ahora todo lo que sea manejo de excepción lo implementamos dentro de esta
expresión.
Lanta una función de fecha.
Entonces vamos a colocar los argumentos que en realidad es sin argumentos.
Lo hagamos vacío flecha.
Y acá las llaves de nuestra persona lanta punto y coma.
Cerramos con punto y coma.
Bien Lleca, invocamos el método que va a lanzar esta acepción, es decir, que supuestamente debería
lanzar esta sección en cierto escenario.
Entonces cuenta punto débito, no?
Cierto.
Vamos a transferir un monto new být décima.
Tiene que ser un monto mayor al que tenemos en la cuenta.
En la cuenta tenemos 1000 reseque, cuyo monto sobre 1000, por ejemplo 1001 mil dos mil quinientos,
por ejemplo mil quinientos debiese lanzar esta sección.
Punto y coma a otro punto importante es que esté cruz.
En realidad también devuelve el objeto, excepción que se lanza.
Por lo tanto, acá se captura internamente, sea capturar, sea manejar.
Y este método acá va a devolver el tipo, la instancia que del tipo dinero.
Aquí lo podremos colocar del tipo más genérico, no lo mismo, porque la idea es obtener el mensaje
error.
Y también podremos comparar el mensaje error y asegurarnos que el mensaje que se lanza sea a uno que
estemos esperando.
Y lo mismo eso lo podemos comparar con el hacer y quarts con el valor esperado y compararlo con el valor
real o actual.
Vamos a colocar Exception Exception igual esto se fijan.
Este método devuelve el objeto escepción y un objeto cesion obtenemos el mensaje.
Entonces del tipo string, por ejemplo string actual o real como le queramos llamar exception punto
get mensajea get me sacho
es trenca, por ejemplo esperado.
No sé, vamos a colocar que nuestro mensaje esperado va a ser dinero insuficiente.
Hacer cuales esperado versus actuar?
Vamos a comparar entonces final se fijan en el mismo método.
Estamos haciendo dos pruebas unitarias que está muy relacionada.
Primero evaluamos el lanzamiento escepcion que es el mismo.
Luego lo capturamos perfecto.
Si todo sale bien, vamos a evaluar.
Vamos a probar el mensaje error que sea el correcto el que efectivamente se viviese de incluir a cocinar.
Cuando se lanza la acepción.
Pero ojo, todavía no hemos implementado ningún método en cuenta.
Todavía no estamos implementando este código de manejo decepción en el método débito.
Solamente estamos probando.
Entonces ahora vamos a ejecutar como siempre.
Y ver qué pasa.
Obviamente la falla no es cierto.
Primero dice que se esperaba dinero es suficiente Сервис John's, pero no devolvió nada.
En realidad se fijan, no pasó nada y el otro error ni siquiera se ejecuta.
Acá el assert y cuas, porque ni siquiera está lanzando la excepción.
Entonces eso es lo que vamos a implementar ahora.
Primero probamos, luego implementamos.
Bien.
Vamos a cerrar.
Vamos a quitar esto.
Ocultar.
Y continuamos.
No vamos a ir a cuenta por acá en débito.
Bueno, lo primero antes de asignar acá vamos a modificar y vamos a asignar a una variable local del
método que vamos a colocar el tipo, porque es una variable local.
Bit decimal.
Nombre variable.
Nuevo saldo.
Bajamos y comparamos nuevo salto.
Entonces con un NIF.
Nuevo salto.
Punto.
Recuerden que es un bidé.
Si comparamos con él.
Comparto comparto.
Lo comparamos con bit decimal cero bit decimal punto cero.
Entonces, si esta expresión devuelve un valor negativo, es decir menos 1, significa que cero es mayor
que nuevo saldo.
Por lo tanto, la persona no tiene dinero suficiente para realizar la transacción y viviésemos de lanzar
una excepción.
Entonces acá comparamos.
Entonces, si en menor o negativo, en menor que 0 perfecto, lanzamos la excepción throw new dinero
insuficiente excepto por constructor.
Recuerden que implementamos el constructor para pasar un mensaje personalizado.
Vamos a colocar el mismo mensaje con el cual queremos probar.
Dinero es suficiente.
Dinero insuficiente.
Perfecto.
Pero si todo sale bien y no lanza ninguna excepción, entonces tenga que asignar 10 puntos.
Saldo igual.
Nuevo saldo.
Perfecto.
Importante asignar, cierto.
Si no se cumple la regla negocio lanzar una sesión.
Y esto no se realiza.
No se realiza la transacción.
No se le asigna el valor del nuevo saldo a saldo.
No se resta.
Se fijan.
Simplemente no se lleva a cabo la transacción.
Y estamos listos.
Ahora tenemos implementado manejo acepcion.
Bien.
Volvamos entonces con control TAF.
Volvemos a cuenta test y vamos a probar un clic afuera.
Ejecutamos como siempre.
De ahí pasó, pasó todas las pruebas.
Dinero suficiente.
Está perfecto, en realidad, claro, pusimos 1500.
La persona no tiene dinero suficiente.
Lanza excepcion, que está bien, porque acá estamos simulando el error.
Lo queremos producir de forma intencional para ver cómo se está manejando el error.
La acepción dinero suficiente se lanza y es la esperada.
Así que está bien.
Luego probamos el mensaje error.
Ahora, qué pasa si cambiamos el dinero suficiente y le ponemos otro texto?
Por ejemplo, dinero suficiente.
En la cuenta se fijan este de acá va a pasar, pero este de acá no pasa.
Se fijan porque no es igual, no va a ser igual a la esperada.
Ejecutamos y la prueba falla.
Esperado dinero suficiente en la cuenta actual dinero suficiente.
Este es el mensaje real que se lanza en la acepción Yetta.
Qué estamos esperando?
No es igual.
Así que está bien.
Estamos probando correctamente.
Lo dejamos como estaba.
Ahora, qué pasa si en vez de dinero es suficiente?
Exception?
No sé.
Vamos a colocar otro tipo de clase.
Decepción, por poner un ejemplo, un number forma exception y ni siquiera necessary que lo hagan solamente
para que lo tengan en cuenta y lo vean.
Un Amper formato Exception.
Acá lo tenemos.
Triplican.
Supongamos que esperábamos este error, pero en realidad se va a lanzar el dinero suficiente.
Entonces esta prueba no se pasa.
Veamos.
Inesperada acepción del tipo.
Bueno, se espera un ámber format exception, pero finalmente se lanza un dinero en suficiente septón.
No coinciden los tipos.
Entonces esta forma podemos evaluar, probar el manejo de error.
Hará lo correcto en la prueba.
Es como lo teníamos con el dinero suficiente.
Eso es lo correcto.
Ahora, bueno, va a pasar esta prueba.
Pero qué pasaría si Test Débito está acá?
Lo modificamos y en débito colocamos, no sé, 2000 por ejemplo, tampoco en esa serie que lo hagas
solamente para que lo vean y lo tengan en cuenta.
Voy a colocar dos mil.
Obviamente va a fallar porque lanza la selección y ni siquiera va a pasar el test, ni siquiera se va
a ejecutar esto de acá, porque primero se lanza la excepción en débito y falla.
Lo demás ni siquiera se evalúa bien.
Veamos un clic afuera.
Ejecutamos todo.
Se fijan, pasa dinero suficiente porque está bien, acepto, pero débito no pasa porque se lanza la
excepción, dinero insuficiente, excepto se fijan, se lanza recesión, falla la prueba automáticamente.
Entonces todo bien, lo están probando con nuestra regla negocio.
Bien.
Vamos a dejar como estaba Conscien.
Volvemos a probar y está todo bien.
Perfecto.
Bueno, eso sería manejo decepciones co Cunit, pruebas unitarias.
Lo dejamos hasta acá y nos vemos en la siguiente clase.