Struct axum_test::TestServerConfig
source · pub struct TestServerConfig {
pub transport: Option<Transport>,
pub save_cookies: bool,
pub expect_success_by_default: bool,
pub restrict_requests_with_http_schema: bool,
pub default_content_type: Option<String>,
}Expand description
This is for customising the TestServer on construction.
It implements Default to ease building configurations:
use ::axum_test::TestServerConfig;
let config = TestServerConfig {
save_cookies: true,
..TestServerConfig::default()
};These can be passed to TestServer::new_with_config:
use ::axum::Router;
use ::axum_test::TestServer;
use ::axum_test::TestServerConfig;
let my_app = Router::new();
let config = TestServerConfig {
save_cookies: true,
..TestServerConfig::default()
};
// Build the Test Server
let server = TestServer::new_with_config(my_app, config)?;Fields§
§transport: Option<Transport>Which transport mode to use to process requests.
For setting if the server should use mocked http (which uses tower::util::Oneshot),
or if it should run on a named or random IP address.
The default is to use mocking, apart from services built using axum::extract::connect_info::IntoMakeServiceWithConnectInfo
(this is because it needs a real TCP stream).
Set for the server to save cookies that are returned, for use in future requests.
This is useful for automatically saving session cookies (and similar) like a browser would do.
Defaults to false (being turned off).
expect_success_by_default: boolSets requests made by the server to always expect a status code returned in the 2xx range, and to panic if that is missing.
This is useful when making multiple requests at a start of test which you presume should always work. It also helps to make tests more explicit.
Defaults to false (being turned off).
restrict_requests_with_http_schema: boolIf you make a request with a ‘http://’ schema, then it will ignore the Test Server’s address.
For example if the test server is running at http://localhost:1234,
and you make a request to http://google.com.
Then the request will go to http://google.com.
Ignoring the localhost:1234 part.
Turning this setting on will change this behaviour.
After turning this on, the same request will go to
http://localhost:1234/http://google.com.
Defaults to false (being turned off).
default_content_type: Option<String>Set the default content type for all requests created by the TestServer.
This overrides the default ‘best efforts’ approach of requests.
Implementations§
source§impl TestServerConfig
impl TestServerConfig
sourcepub fn builder() -> TestServerConfigBuilder
pub fn builder() -> TestServerConfigBuilder
Creates a builder for making it simpler to creating configs.
use ::axum_test::TestServerConfig;
let config = TestServerConfig::builder()
.save_cookies()
.default_content_type(&"application/json")
.build();Trait Implementations§
source§impl Clone for TestServerConfig
impl Clone for TestServerConfig
source§fn clone(&self) -> TestServerConfig
fn clone(&self) -> TestServerConfig
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for TestServerConfig
impl Debug for TestServerConfig
source§impl Default for TestServerConfig
impl Default for TestServerConfig
source§impl PartialEq for TestServerConfig
impl PartialEq for TestServerConfig
source§fn eq(&self, other: &TestServerConfig) -> bool
fn eq(&self, other: &TestServerConfig) -> bool
self and other values to be equal, and is used
by ==.