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>,
pub default_scheme: 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: bool
Asserts that requests made to the test server, will by default, return a status code in the 2xx range.
This can be overridden on a per request basis using
TestRequest::expect_failure()
.
This is useful when making multiple requests at a start of test which you presume should always work.
Defaults to false (being turned off).
restrict_requests_with_http_schema: bool
If 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.
default_scheme: Option<String>
Set the default scheme to use for all requests created by the TestServer
.
This overrides the default ‘http’.
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 ==
.