Bienvenidos sean a este post, hoy volvemos con las macros assert y una caracteristica.
Ya vimos como trabajar con assert, assert_eq y assert_ne, pero todas estas macros permiten agregar un mensaje personalizado para que podamos saber de mejor forma una falla, para ello simplemente debemos agregar un mensaje despues de los atributos que usaremos para comparar, para entenderlo vamos a utilizar el codigo que vimos en el post anterior, en caso de no tenerlo simplemente generen un nuevo proyecto de tipo libreria con el nombre prueba, y modificaremos el archivo lib.rs de la siguiente manera:
lib.rs
pub fn agregar_dos(a: i32) -> i32
{
a + 2
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn agrego_dos()
{
assert_eq!(4, agregar_dos(2), "Los valores son distintos");
assert_ne!(4, agregar_dos(2), "Los valores son iguales");
}
}
Es basicamente lo que vimos en el post anterior pero la unica diferencia es que despues de los valores que pasamos en las macros le agregamos un texto que identifica de mejor manera la falla en cada una de ellas, ahora simplemente volvamos a correr el test y veamos como es su salida:
tinchicus@dbn001vrt:~/lenguajes/rust/prueba$ cargo test
Finished test [unoptimized + debuginfo] target(s) in 0.01s
Running unittests (target/debug/deps/prueba-e23faeddfadd8fad)
running 1 test
test tests::agrego_dos ... FAILED
failures:
---- tests::agrego_dos stdout ----
thread 'main' panicked at 'assertion failed: `(left != right)`
left: `4`,
right: `4`: Los valores son iguales', src/lib.rs:14:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failures:
tests::agrego_dos
test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
error: test failed, to rerun pass '--lib'
tinchicus@dbn001vrt:~/lenguajes/rust/prueba$
En este caso volvio a fallar pero observen como ahora al lado de la notificacion de falla causada por el panic tenemos un mensaje que nos identifica de mejor manera porque ocurrio la falla, pero como vimos en los posts anteriores este mensaje es opcional y no afecta al funcionamiento la falta del mismo pero si necesitamos hacer una muestra mas completa de nuestra falla lo podemos utilizarlo de la siguiente manera a cada macro:
assert!(argumento[, mensaje])
assert_eq!(valor1, valor2[, mensaje])
assert_ne!(valor1, valor2[, mensaje])
En resumen, hoy hemos visto una caracteristica de los assert, en este caso la capacidad de poder agregar un mensaje personalizado para poder complementar al mensaje que nos entrega panic, en este caso hemos tomado el caso que vimo en el post anterior y le agregamos un mensaje a cada assert para saber el motivo de la falla, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
