Module zebra_test::mock_service[][src]

Expand description

Some helpers to make it simpler to mock Tower services.

A MockService is a generic tower::Service implementation that allows intercepting requests, responding to them individually, and checking that there are no requests to be received (at least during a period of time). The MockService can be built for proptests or for normal Rust unit tests.


use zebra_test::mock_service::MockService;

let mut mock_service = MockService::build().for_unit_tests();
let mut service = mock_service.clone();

let call = tokio::spawn(mock_service.clone().oneshot("hello"));



let response = call
    .expect("Failed to run call on the background")
    .expect("Failed to receive response from service");

assert_eq!(response, "hi!");


A service implementation that allows intercepting requests for checking them.

A builder type to create a MockService.

A helper type for responding to incoming requests.


Represents normal Rust assertions that panic, like assert_eq.

Represents [proptest] assertions that return errors, like prop_assert_eq.


The default timeout before considering a request has not been received.

The default size of the channel that forwards received requests.


A representation of an assertion type.

A helper trait to improve ergonomics when sending a response.

Type Definitions

An internal type representing the item that’s sent in the [broadcast] channel.