Some helpers to make it simpler to mock Tower services.
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")); mock_service .expect_request("hello").await .respond("hi!"); mock_service.expect_no_requests().await; let response = call .await .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 helper type for responding to incoming requests.
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.
An internal type representing the item that’s sent in the [