Struct TestServer

Source
pub struct TestServer { /* private fields */ }
Expand description

Provides a very simple HTTP server with warp that can be used to test requests.

To use this you must enable the server feature in your Cargo.toml.

The server is bound to the localhost at a random port. The bound port can be retrieved using the TestServer::port method.

§Example

use tux::TestServer;

let server = TestServer::new_with_root_response("hello from server");
println!("server is listening at port {}", server.port());

let addr = format!("http://localhost:{}", server.port());
let resp = reqwest::blocking::get(addr).unwrap();
let text = resp.text().unwrap();
assert_eq!(text, "hello from server");

// dropping the value shuts down the server
drop(server);

Implementations§

Source§

impl TestServer

Source

pub fn port(&self) -> u16

Returns the port number where the server is listening for incoming connections.

Source

pub fn new_with_root_response(response: &'static str) -> Self

Creates a server with a root route that just responds with the given text.

Source

pub fn new_with_ping_route(route: &'static str) -> Self

Creates a server that will respond to any route and method with information about the incoming request.

The response is plain text with lines in the format key: value.

The following keys are provided:

  • method
  • path
Source

pub fn new_with_routes<F>(routes: F) -> TestServer
where F: Filter + Clone + Send + Sync + 'static, F::Extract: Reply,

Creates a new server with custom routes.

§Example
let routes = warp::path::end().map(|| "hello");
let server = TestServer::new_with_routes(routes);

Trait Implementations§

Source§

impl Drop for TestServer

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,