Escribir Pruebas

La Importancia de las Pruebas

Escribir pruebas es un sello distintivo de la ingeniería responsable y el secreto para dormir tranquilo. Un conjunto de pruebas exhaustivo no solo mejora la calidad del código y previene errores de regresión, sino que también garantiza que puedas descansar fácilmente después del despliegue. Mientras tus colegas podrían despertarse sobresaltados por alertas nocturnas de fallos del sistema, tu aplicación permanece sólida como una roca—esta es la tranquilidad y confianza que brindan las pruebas.

Herramientas de Prueba de Salvo

El módulo de prueba proporcionado por Salvo te ayuda a probar proyectos basados en Salvo.

Documentación más reciente

Ejemplo Sencillo:

use salvo::prelude::*;

#[handler]
async fn hello_world() -> &'static str {
    "Hello World"
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();

    tracing::info!("Listening on http://127.0.0.1:8698");
    let acceptor = TcpListener::new("127.0.0.1:8698").bind().await; Server::new(acceptor).serve(route()).await;
}

fn route() -> Router {
    Router::new().get(hello_world)
}

#[cfg(test)]
mod tests {
    use salvo::prelude::*;
    use salvo::test::{ResponseExt, TestClient};

    #[tokio::test]
    async fn test_hello_world() {
        let service = Service::new(super::route());

        let content = TestClient::get(format!("http://127.0.0.1:8698/"))
            .send(&service)
            .await
            .take_string()
            .await
            .unwrap();
        assert_eq!(content, "Hello World");
    }
}