Skip to main content
MockSandbox implements the same CanExecuteCommand contract.

Create Mock with Responses

use Cognesy\Sandbox\Data\ExecResult;
use Cognesy\Sandbox\Testing\MockSandbox;

$sandbox = MockSandbox::withResponses([
    'php -v' => [
        new ExecResult(stdout: 'PHP 8.3', stderr: '', exitCode: 0, duration: 0.01),
    ],
]);
// @doctest id="c8b0"

Execute and Assert

$result = $sandbox->execute(['php', '-v']);

echo $result->stdout();
// @doctest id="1933"

Inspect Recorded Commands

$commands = $sandbox->commands();
// @doctest id="e032"