TestRunner

Struct TestRunner 

Source
pub struct TestRunner<M: Model> { /* private fields */ }
Expand description

A test runner that provides utilities for testing hojicha applications

Implementations§

Source§

impl<M: Model> TestRunner<M>
where M::Message: Clone + Send + 'static,

Source

pub fn new(model: M) -> Result<Self>

Create a new test runner with the given model

Source

pub fn with_options(model: M, options: ProgramOptions) -> Result<Self>

Create a new test runner with custom options

Source

pub fn with_timeout(self, timeout: Duration) -> Self

Set the timeout for test execution

Source

pub fn without_timeout(self) -> Self

Run without any timeout (be careful - may hang!)

Source

pub fn init_async_bridge(&mut self) -> SyncSender<Event<M::Message>>

Initialize the async bridge and return a sender

Source

pub fn sender(&self) -> Option<SyncSender<Event<M::Message>>>

Get a sender if async bridge was initialized

Source

pub fn send_message(&self, msg: M::Message) -> Result<()>

Send a message to the program

Source

pub fn run(self) -> Result<()>

Run the program with the configured timeout

Source

pub fn run_until<F>(self, condition: F) -> Result<()>
where F: FnMut(&M) -> bool + 'static,

Run until a condition is met

Source

pub fn run_for_updates(self, count: usize) -> Result<()>

Run for a specific number of update cycles

Auto Trait Implementations§

§

impl<M> Freeze for TestRunner<M>
where M: Freeze,

§

impl<M> !RefUnwindSafe for TestRunner<M>

§

impl<M> Send for TestRunner<M>
where M: Send,

§

impl<M> !Sync for TestRunner<M>

§

impl<M> Unpin for TestRunner<M>
where M: Unpin,

§

impl<M> !UnwindSafe for TestRunner<M>

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> Inspectable for T

Source§

fn inspect(self, label: &str) -> Self
where Self: Debug,

Inspect this value with a label
Source§

fn inspect_if(self, condition: bool, label: &str) -> Self
where Self: Debug,

Conditionally inspect this value
Source§

fn inspect_with<F>(self, label: &str, f: F) -> Self
where F: FnOnce(&Self) -> String,

Inspect with a custom formatter
Source§

fn tap<F>(self, f: F) -> Self
where F: FnOnce(&Self),

Tap into the value for side effects
Source§

fn tap_if<F>(self, condition: bool, f: F) -> Self
where F: FnOnce(&Self),

Conditionally tap into the value
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<T> Message for T
where T: Send + 'static,