Crate actix_test[][src]

Expand description

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());
}

Structs

Async I/O test buffer.

Test Request builder.

A basic HTTP server controller that simplifies the process of writing integration tests for Actix Web applications.

Functions

Helper function that returns a response body of a TestRequest

Helper function that returns a deserialized response body of a TestRequest

Calls service and waits for response future completion.

Create default test server config.

Initialize service from application builder instance.

Creates service that always responds with 200 OK and no body.

Helper function that returns a response body of a ServiceResponse.

Helper function that returns a deserialized response body of a ServiceResponse.

Creates service that always responds with given status code and no body.

Start default TestServer.

Start test server with custom configuration

Collects the body produced by a MessageBody implementation into Bytes.

Get a localhost socket address with random, unused port.