Bienvenidos en esta clase, vamos a hacerlo mensaje de error personalizado.
Si en cada Azeroth hacer equals, hacer truo o cualquiera, le podemos dar un texto, un mensaje personalizado
al error como segundo argumento, como segundo, como tercero, según corresponda.
Bueno, partamos al principio.
Por ejemplo, acá la primera prueba, por ejemplo, hacernos null, hacer y hacer thru todos.
Como último argumento, un mensaje es trinque y esto puede complementar, puede dar mucho más valor
al mensaje de error que sea más descriptivo.
No solamente el mensaje de error que lanza Yuni por defecto, por ejemplo, el objeto o la cuenta no
puede ser nula.
Se fijan algo más descriptivo lo mismo acá el nombre de la cuenta no es el que se esperaba.
Por ejemplo,
se fijan mucho mejor y por acá también.
Otro strength esperado debe ser igual.
Por ejemplo, al real,
a la real o actual.
Más detalle a detalle, mensaje, error.
En caso de que falle ahora, acá hay un tema importante que acá es donde quiero apuntar este string
solamente se va a mostrar, solamente se va a ejecutar, se va a consumir cuando se muestre el error
o en realidad se debiera de consumir porque tenemos un problema.
Este string también se puede pasar como una función anónima, una prisión lanta para que solamente se
pueda generar, se pueda construís, se pueda consumir solo si ocurre el error, de acuerdo, porque
de esta forma si lo pasamos de forma literal, tal como lo estamos haciendo ahora, se va a crear la
instancia, se va a generar el string que siempre ocurra o no ocurra el error.
Y podríamos tener según la cantidad de text con varios mensajes.
Imagínense, podríamos tener varias clases de test con varios métodos y cada método con hacer chón y
comenzarse de errores incluso pueden ser concatenación mensaje de error que concatena variable que construye
un string complejo costoso también de generar.
Entonces, si la prueba pasa y nos falla, no tiene ningún sentido de consumir este stream, de crear
la instancia a consumir.
Me refiero a que UNIT crea la instancia de este string y eso ocupa ciertos recursos, espacio y memoria
que finalmente si son muchos es costoso.
Y ella punto.
Y esto se puede solventar, se puede solucionar con expresiones lambda, ya lo vamos a ver, pero por
ahora vamos a ejecutar para que vean de qué se trata.
Solamente va a ejecutar este método ya para que lo veamos ahora.
Claro, si lo ejecuto y está todo correcto, no pasa nada.
No muestra ningún mensaje.
Error, claro, porque no hay nada que mostrar.
Pero de todas formas igual estos objetos, estos string se crearon, se instanciar o se construyeron
y están ocupando espacio y recursos.
Vamos a simular el error, por ejemplo esperado Andrés, pero el real es Andrés G.
F, por poner un ejemplo perfecto.
Bueno, ejecutemos.
Se fijan, acá muestro el error esperado en 3 actual Andrè Jefe.
El nombre de la cuenta no es el que se esperaba.
Se fijan, incluso, como decía, podría ser un poco más complejo en el sentido de que podemos concatenar.
Por ejemplo.
2 punto se esperaba
concatenados con esperado.
Sin embargo, voy a bajar para que no sea tan extenso un espacio, sin embargo, fue lleca concatenados
espacio más real.
Se fijan que tenemos una construcción un poco más compleja, más elaborada del estric.
En nombre de la cuenta no es el que se esperaba, se esperaban tres.
Sin embargo, fue Andrés jefe.
Se fijan, entonces podemos dar mucho más valor con el mensaje texto.
Ahora, en vez de colocar de forma literal que era como se hacía, por ejemplo en versiones anteriores
de UNIT en la versión 4.
Ahora podemos utilizar represiones lambda y esto implica, en vez de pasar el string, la construcción,
la instancia del objeto string, pasamos un valor futuro del string, es decir, pasamos un método que
contiene la construcción del estèn, pero no se construye.
Solamente pasamos el método que va a construir el string y se va a ejecutar por debajo en el acept no
null oblicuas o en true o en cualquier acechas.
Ahí se va a invocar este método solamente si falla.
Si falla, se invoca este método y se construye el string, entonces mucho más eficiente.
Si la prueba pasa, estos string nunca se van a instanciar, nunca se van a crear.
Entonces simplemente una landa de flecha.
Nada más cambiamos esto.
Por una prisión lanta.
De Bingen, obviamente al ojo humanos no nos damos.
No lo vamos a ver cuando ejecutemos, pero si, si la prueba sale correcta, no falla.
Estos objetos no se crean, pero si falla se van a crear.
Obviamente va a ejecutar, pero no lo vamos a visualizar.
Te dejan?
Pero si es mucho mejor.
Y como lo tenemos acá con Holanda, también podríamos dar mensajes de error en cualquiera.
Acá también en todos los.
Obviamente no lo voy a hacer porque uno no tiene sentido, pero incluso acá, en cada hacer equals,
en hacer gol en cada ser.
Y cuáles podrían pasar?
No septo un mensaje de texto, una expresión Lanta.
Recuerden, estamos pasando una invocación futura de un método que estamos pasando con un piso en Holanda.
No se va a crear el estric de forma inmediata.
Solamente si falla.
Eso es lo importante.
Entonces, solamente para un ejemplo, un lanta.
El valor del saldo de la cuenta
de la cuenta 2 no es el esperado.
Se fijan.
De hecho, vamos a bajar el qué mejor, pero lo dejamos acá, por acá se dejan.
Y así por cada uno.
De hecho podemos copiar esto acá lo copiamos y lo pegamos acá dentro del hacer.
Entonces coma espacio, bajamos y pegamos este para la cuenta uno cuenta uno, este cuenta dos, este
cuenta uno, así que cuenta uno.
Acá lo mismo con el banco.
El banco no tiene las cuentas esperadas, que serían dos, de hecho dos podría ser una variable de esta
prisión linda.
Acá una variable y la podemos utilizar acá y acá cuenta esperadas.
Igual dos se fijan.
Y en fin.
Y así por cada uno.
Entonces damos más valor a los mensajes de error y solamente se crean si falla, si no falla y sale
todo bien, no se consume el string.
Bien, lo dejamos así y continuamos la siguiente clase con algunas anotaciones, por ejemplo display
name para dar un nombre a nuestra prueba, a nuestro método y también la notación disable para deshabilitar
una preguntaria.
Ahora, como ejercicio, si quieren puede completar acá con mensajes de error.
En caso de falla, acá por ejemplo, algún mensaje descriptivo nos vemos.