Struct Test

Source
pub struct Test {
    pub configs: TypeMap,
    pub compositions: Vec<Composition>,
}
Expand description

A single test which brings up one or more Servers.

A Test receives Configs via register which determines the servers that will be brought up when the test is executed. The run method is used to bring up the Servers and then run the given test body.

The body of a test is determined by an async closure passed to the run method. The closure will receive a TestInstance which can be used to access the Servers that were created when the test was setup.

Fields§

§configs: TypeMap§compositions: Vec<Composition>

Implementations§

Source§

impl Test

Source

pub fn new() -> Self

Creates an empty Test.

Source

pub fn register(&mut self, config: impl Config + 'static)

Registers a Config with this test.

A Test can be configured with any number of Configs for determining which Servers are brought up in a test. Each Config passed will have it’s respective Server created before the test body is ran.

Source

pub fn run<T, F>(self, fun: T)
where T: FnOnce(TestInstance) -> F + Send + 'static, F: Future<Output = ()> + Send + 'static,

Brings up the Servers registered with this test and then runs the given test body.

The test body receives a TestInstance which can be used for accessing any configured Servers through the server method. The test body is guaranteed to not execute until all configured Servers are verified to be running and available. The scope of the test body determines the life of the Servers: they are created before the closure is run and destroyed after the closure exits.

Trait Implementations§

Source§

impl Default for Test

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Test

§

impl !RefUnwindSafe for Test

§

impl !Send for Test

§

impl !Sync for Test

§

impl Unpin for Test

§

impl !UnwindSafe for Test

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, 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,