#http #web #framework #async #futures

dev actix-test

Integration testing tools for Actix Web applications

18 releases

0.1.3 Feb 4, 2024
0.1.2 Aug 29, 2023
0.1.1 Feb 26, 2023
0.1.0 Jul 24, 2022
0.0.1 Mar 19, 2021

#583 in HTTP server

Download history 10443/week @ 2023-10-31 8695/week @ 2023-11-07 7326/week @ 2023-11-14 4420/week @ 2023-11-21 7407/week @ 2023-11-28 6003/week @ 2023-12-05 6967/week @ 2023-12-12 4246/week @ 2023-12-19 1321/week @ 2023-12-26 6276/week @ 2024-01-02 7124/week @ 2024-01-09 7065/week @ 2024-01-16 6726/week @ 2024-01-23 5529/week @ 2024-01-30 4517/week @ 2024-02-06 5704/week @ 2024-02-13

23,650 downloads per month
Used in 19 crates

MIT/Apache

1.5MB
38K SLoC

Integration testing tools for Actix Web applications.

The main integration testing tool is TestServer. It spawns a real HTTP server on an unused port and provides methods that use a real HTTP client. Therefore, it is much closer to real-world cases than using init_service, which skips HTTP encoding and decoding.

Examples

use actix_web::{get, web, test, App, HttpResponse, Error, Responder};

#[get("/")]
async fn my_handler() -> Result<impl Responder, Error> {
    Ok(HttpResponse::Ok())
}

#[actix_rt::test]
async fn test_example() {
    let srv = actix_test::start(||
        App::new().service(my_handler)
    );

    let req = srv.get("/");
    let res = req.send().await.unwrap();

    assert!(res.status().is_success());
}

Dependencies

~17–34MB
~605K SLoC