macro_rules! e2e_test {
(
name: $name:expr,
$(description: $desc:expr,)?
client: $client:expr,
$(step $step_name:literal => |$client_param:ident| $step_body:block),+ $(,)?
) => { ... };
}Expand description
Macro for defining E2E test scenarios with a declarative syntax.
§Example
ⓘ
use fastapi_core::testing::{e2e_test, TestClient};
e2e_test! {
name: "User Login Flow",
description: "Tests the complete user login process",
client: TestClient::new(app),
step "Navigate to login page" => |client| {
let response = client.get("/login").send();
assert_eq!(response.status().as_u16(), 200);
},
step "Submit credentials" => |client| {
let response = client
.post("/login")
.json(&serde_json::json!({"username": "test", "password": "secret"}))
.send();
assert_eq!(response.status().as_u16(), 302);
},
step "Access dashboard" => |client| {
let response = client.get("/dashboard").send();
assert_eq!(response.status().as_u16(), 200);
assert!(response.text().contains("Welcome"));
},
}