pub struct TestClient<S = ()> { /* private fields */ }Expand description
An in-process test client for Volter applications.
Wraps a Router and provides ergonomic helpers for issuing requests
and inspecting responses without binding a real TCP socket.
The type parameter S corresponds to the router’s application state.
Most tests use a stateless router (Router::new()) which gives
TestClient::new(router) a TestClient<()>.
Each call to get / post / request clones the router (a cheap
Arc bump) so the client does not require &mut access.
§Example
use volter_testing::TestClient;
use volter_router::{Router, get};
async fn handler() -> &'static str { "hello" }
let client = TestClient::new(Router::new().route("/", get(handler)));
let resp = client.get("/").send().await;
assert_eq!(resp.status(), 200);Implementations§
Source§impl<S: Clone + Send + 'static> TestClient<S>
impl<S: Clone + Send + 'static> TestClient<S>
Sourcepub fn get(&self, path: &str) -> TestRequestBuilder<S>
pub fn get(&self, path: &str) -> TestRequestBuilder<S>
Start building a GET request to path.
Sourcepub fn post(&self, path: &str) -> TestRequestBuilder<S>
pub fn post(&self, path: &str) -> TestRequestBuilder<S>
Start building a POST request to path.
Sourcepub fn request(&self, method: Method, path: &str) -> TestRequestBuilder<S>
pub fn request(&self, method: Method, path: &str) -> TestRequestBuilder<S>
Start building a request with an arbitrary HTTP method.
Auto Trait Implementations§
impl<S = ()> !RefUnwindSafe for TestClient<S>
impl<S = ()> !Sync for TestClient<S>
impl<S = ()> !UnwindSafe for TestClient<S>
impl<S> Freeze for TestClient<S>where
S: Freeze,
impl<S> Send for TestClient<S>where
S: Send,
impl<S> Unpin for TestClient<S>where
S: Unpin,
impl<S> UnsafeUnpin for TestClient<S>where
S: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more