#axum #axum-server #test

yanked axum-test-server

For spinning up and testing Axum servers

3 releases (stable)

2.0.0 Jan 17, 2023
1.0.0 Jan 14, 2023
0.2.3 Jan 12, 2023

#29 in #axum-server

23 downloads per month

MIT license

16KB
269 lines

Axum Test Server
for testing Axum Servers

crate docs

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.

Dependencies

~6.5–9MB
~159K SLoC