Crates.io | axum-test-server |
lib.rs | axum-test-server |
version | 2.0.0 |
source | src |
created_at | 2023-01-12 17:25:44.977113 |
updated_at | 2023-01-17 23:15:31.66315 |
description | For spinning up and testing Axum servers |
homepage | |
repository | https://github.com/JosephLenton/axum-test-server |
max_upload_size | |
id | 757350 |
size | 17,087 |
This has been moved to Axum Test, and you can find it here.
This is for spinning up an Axum service, that you can then query directly. This is primarily for testing Axum services.
use ::axum::Router;
use ::axum::routing::get;
use ::axum_test_server::TestServer;
async fn get_ping() -> &'static str {
"pong!"
}
#[tokio::test]
async fn it_sound_get() {
// Build an application with a route.
let app = Router::new()
.route("/ping", get(get_ping))
.into_make_service();
// Run the server.
let server = TestServer::new_with_random_address(app);
// Get the request.
let response = server
.get("/ping")
.await
.assert_contents(&"pong!");
assert_eq!(response.contents, "pong!");
}
One of the main benefits is you can spin up the server on a random port, allowing you to run multiple servers in parallel.