Struct axum_test::TestServer
source · pub struct TestServer { /* private fields */ }
Expand description
The TestServer
runs your application,
allowing you to make web requests against it.
You can make a request against the TestServer
by calling the
TestServer::get()
, TestServer::post()
, TestServer::put()
,
TestServer::delete()
, and TestServer::patch()
methods.
They will return a TestRequest
you can use for request building.
use ::axum::Json;
use ::axum::routing::Router;
use ::axum::routing::get;
use ::serde::Deserialize;
use ::serde::Serialize;
use ::axum_test::TestServer;
let app = Router::new()
.route(&"/todo", get(|| async { "hello!" }))
.into_make_service();
let server = TestServer::new(app)?;
// The different responses one can make:
let get_response = server.get(&"/todo").await;
let post_response = server.post(&"/todo").await;
let put_response = server.put(&"/todo").await;
let delete_response = server.delete(&"/todo").await;
let patch_response = server.patch(&"/todo").await;
Implementations§
source§impl TestServer
impl TestServer
sourcepub fn new<A>(app: A) -> Result<Self>where
A: IntoTestServerThread,
pub fn new<A>(app: A) -> Result<Self>where A: IntoTestServerThread,
This will run the given Axum app, and run it on a random local address.
This is the same as creating a new TestServer
with a configuration,
and passing TestServerConfig::default()
.
sourcepub fn new_with_config<A>(app: A, config: TestServerConfig) -> Result<Self>where
A: IntoTestServerThread,
pub fn new_with_config<A>(app: A, config: TestServerConfig) -> Result<Self>where A: IntoTestServerThread,
This very similar to TestServer::new()
,
however you can customise some of the configuration.
This includes which port to run on, or default settings.
See the TestServerConfig
for more information on each configuration setting.
sourcepub fn get(&self, path: &str) -> TestRequest
pub fn get(&self, path: &str) -> TestRequest
Creates a HTTP GET request to the path.
sourcepub fn post(&self, path: &str) -> TestRequest
pub fn post(&self, path: &str) -> TestRequest
Creates a HTTP POST request to the given path.
sourcepub fn patch(&self, path: &str) -> TestRequest
pub fn patch(&self, path: &str) -> TestRequest
Creates a HTTP PATCH request to the path.
sourcepub fn put(&self, path: &str) -> TestRequest
pub fn put(&self, path: &str) -> TestRequest
Creates a HTTP PUT request to the path.
sourcepub fn delete(&self, path: &str) -> TestRequest
pub fn delete(&self, path: &str) -> TestRequest
Creates a HTTP DELETE request to the path.
sourcepub fn method(&self, method: Method, path: &str) -> TestRequest
pub fn method(&self, method: Method, path: &str) -> TestRequest
Creates a HTTP request, to the path given, using the given method.
sourcepub fn server_address<'a>(&'a self) -> &'a str
pub fn server_address<'a>(&'a self) -> &'a str
Returns the local web address for the test server.
By default this will be something like http://0.0.0.0:1234/
,
where 1234
is a randomly assigned port numbr.
Adds a cookie to be included on all future requests.
If a cookie with the same name already exists, then it will be replaced.
Adds extra cookies to be used on all future requests.
Any cookies which have the same name as the new cookies, will get replaced.
Clears all of the cookies stored internally.
Requests made using this TestServer
will save their cookies for future requests to send.
This behaviour is off by default.
Requests made using this TestServer
will not save their cookies for future requests to send up.
This is the default behaviour.
sourcepub fn add_query_param<V>(&mut self, key: &str, value: V)where
V: Serialize,
pub fn add_query_param<V>(&mut self, key: &str, value: V)where V: Serialize,
Adds query parameters to be sent on all future requests.
sourcepub fn add_query_params<V>(&mut self, query_params: V)where
V: Serialize,
pub fn add_query_params<V>(&mut self, query_params: V)where V: Serialize,
Adds query parameters to be sent with this request.
sourcepub fn clear_query_params(&mut self)
pub fn clear_query_params(&mut self)
Clears all query params set.
sourcepub fn add_header<'c>(&mut self, name: HeaderName, value: HeaderValue)
pub fn add_header<'c>(&mut self, name: HeaderName, value: HeaderValue)
Adds a header to be sent with all future requests built from this TestServer
.
sourcepub fn clear_headers(&mut self)
pub fn clear_headers(&mut self)
Clears all headers set so far.