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.

§Example

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!");

Structs§

Enums§

Constants§

Traits§

Type Aliases§

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