*/ public function expect(mixed $value): Expectation { /** @var TValue $value */ $value = $value instanceof Closure ? Reflection::bindCallableWithData($value) : $value; return new Expectation($value); } /** * @template TValue * * Create a new expectation. Callable values will be executed prior to returning the new expectation. * * @param callable|TValue $value * * @return Expectation */ public function and(mixed $value) { return $this->expect($value); } /** * Tap into the test case to perform an action and return the test case. */ public function tap(callable $callable): object { Reflection::bindCallableWithData($callable); return $this->target; } }