pub struct ReporterHarness { /* private fields */ }Expand description
Owns the channels and sink needed to build a Reporter for tests.
The matching event receiver is kept alive for the harness’s lifetime,
so a reporter built from Self::reporter never sees a spurious
disconnect while emitting facts. Its commands are the ones queued when
it was built, and nothing more: a prompt with no answer left fails as a
disconnect rather than waiting for one that cannot come.
Implementations§
Source§impl ReporterHarness
impl ReporterHarness
Sourcepub fn enqueue_response(&mut self, response: Response)
pub fn enqueue_response(&mut self, response: Response)
Pre-queue a response to the next prompt the action under test will issue.
Prompt ids start at 0 and increase by one per prompt, so queued
responses are matched in issue order: the first call answers the first
prompt, the second answers the second, and so on. The reporter reads
commands from an unbounded channel, so queuing before execute is
enough and no second thread is needed.
Assumes a single reporter built from this harness (the id sequence is
not reset by Self::reporter); that matches every current test.
Sourcepub fn enqueue_retry(&mut self, response: Response)
pub fn enqueue_retry(&mut self, response: Response)
Pre-queue a second answer to the prompt the last queued response answered, for when that one is refused: a refused prompt is asked again under the same id.
Sourcepub fn reporter(&mut self, step: StepId) -> Reporter<'_>
pub fn reporter(&mut self, step: StepId) -> Reporter<'_>
Build a reporter scoped to the given step. The reporter borrows the harness for its lifetime.
The entropy source is seeded with a fixed test seed, mirroring the
runner, so actions that draw values (serials, nonces) work out of the
box. Tests that need a specific seed can call
Reporter::seed_entropy again.