Skip to content

PropertyInterceptor ​

Rasuvaeff\PropertyTesting\Testo\PropertyInterceptor

Class — Package: property-testing-testo — Source — Version: v1.2.0

Implements: Testo\Pipeline\Middleware\TestRunInterceptor, Testo\Pipeline\Interceptor

The Testo adapter for a Property: resolves the test framework's conventions — the attribute, the reflection-discovered generators/examples methods, the environment overrides — into a PropertyDefinition, runs it on the framework-agnostic PropertyRunner, and maps the structured PropertyResult back to a single Testo TestResult.

The interceptor self-registers via the Property attribute's Testo\Pipeline\Attribute\FallbackInterceptor, so simply requiring the package is enough — no plugin registration in testo.php is needed.

It wraps Testo's assertion interceptors so they run once per generated input, while remaining inside data-provider, repeat and retry policies so it owns argument generation for property tests.

Constructor ​

php
__construct(
    Testo\Common\Messenger $messenger,
    ?Runner\Clock $clock = NULL,
    iterable<\PropertyListener> $listeners = [],
)
ParameterTypeDefaultDescription
$messengerTesto\Common\Messengerrequired
$clock?Runner\ClockNULL
$listenersiterable<\PropertyListener>[]Observers of the run's lifecycle events, notified in the given order. The verbose trace listener is appended automatically when PROPERTY_VERBOSE is on.

Methods ​

runTest() ​

php
runTest(
    \Testo\Core\Context\TestInfo $info,
    callable $next,
): Testo\Core\Context\TestResult

Documentation inherited from Testo\Pipeline\Middleware\TestRunInterceptor.

  • $info — Information about the test to be run.
  • $next — Next interceptor or core logic to run the test.