Écrire des tests
L'importance des tests
Écrire des tests est une marque de responsabilité pour un ingénieur et le secret d'un sommeil paisible. Une suite de tests bien conçue améliore non seulement la qualité du code et prévient les régressions, mais vous permet aussi de dormir sur vos deux oreilles après un déploiement. Quand vos collègues reçoivent des alertes de crash système au milieu de la nuit, votre application reste stable comme un roc - c'est la sérénité et la confiance que procurent les tests.
Outils de test Salvo
Le module test fourni par Salvo permet de tester les projets utilisant Salvo.
Documentation la plus récente
Exemple simple :
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:5800");
let acceptor = TcpListener::new("127.0.0.1:5800").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:5800/"))
.send(&service)
.await
.take_string()
.await
.unwrap();
assert_eq!(content, "Hello World");
}
}