W3cubDocs

/CakePHP 4.4

Trait ConsoleIntegrationTestTrait

A bundle of methods that makes testing commands and shell classes easier.

Enables you to call commands/shells with a full application context.

Property Summary

  • $_appArgs protected
    array|null

    The customized application constructor arguments.

  • $_appClass protected
    string|null

    The customized application class name.

  • $_err protected
    Cake\Console\TestSuite\StubConsoleOutput

    Console error output stub

  • $_exitCode protected
    int|null

    Last exit code

  • $_in protected
    Cake\Console\TestSuite\StubConsoleInput

    Console input mock

  • $_out protected
    Cake\Console\TestSuite\StubConsoleOutput

    Console output stub

  • $_useCommandRunner protected
    bool

    Whether to use the CommandRunner

Method Summary

Method Detail

assertErrorContains() public

assertErrorContains(string $expected, string $message = ''): void

Asserts stderr contains expected output

Parameters

string $expected

Expected output

string $message optional

Failure message

Returns

void

assertErrorEmpty() public

assertErrorEmpty(string $message = ''): void

Asserts that stderr is empty

Parameters

string $message optional

The message to output when the assertion fails.

Returns

void

assertErrorRegExp() public

assertErrorRegExp(string $pattern, string $message = ''): void

Asserts stderr contains expected regexp

Parameters

string $pattern

Expected pattern

string $message optional

Failure message

Returns

void

assertExitCode() public

assertExitCode(int $expected, string $message = ''): void

Asserts shell exited with the expected code

Parameters

int $expected

Expected exit code

string $message optional

Failure message

Returns

void

assertExitError() public

assertExitError(string $message = ''): void

Asserts shell exited with Command::CODE_ERROR

Parameters

string $message optional

Failure message

Returns

void

assertExitSuccess() public

assertExitSuccess(string $message = ''): void

Asserts shell exited with the Command::CODE_SUCCESS

Parameters

string $message optional

Failure message

Returns

void

assertOutputContains() public

assertOutputContains(string $expected, string $message = ''): void

Asserts stdout contains expected output

Parameters

string $expected

Expected output

string $message optional

Failure message

Returns

void

assertOutputContainsRow() protected

assertOutputContainsRow(array $row, string $message = ''): void

Check that a row of cells exists in the output.

Parameters

array $row

Row of cells to ensure exist in the output.

string $message optional

Failure message.

Returns

void

assertOutputEmpty() public

assertOutputEmpty(string $message = ''): void

Asserts that stdout is empty

Parameters

string $message optional

The message to output when the assertion fails.

Returns

void

assertOutputNotContains() public

assertOutputNotContains(string $expected, string $message = ''): void

Asserts stdout does not contain expected output

Parameters

string $expected

Expected output

string $message optional

Failure message

Returns

void

assertOutputRegExp() public

assertOutputRegExp(string $pattern, string $message = ''): void

Asserts stdout contains expected regexp

Parameters

string $pattern

Expected pattern

string $message optional

Failure message

Returns

void

cleanupConsoleTrait() public

cleanupConsoleTrait(): void

Cleans state to get ready for the next test

Returns

void

cleanupContainer() public

cleanupContainer(): void

Clears any mocks that were defined and cleans up application class configuration.

Returns

void

commandStringToArgs() protected

commandStringToArgs(string $command): array<string>

Creates an $argv array from a command string

Parameters

string $command

Command string

Returns

array<string>

configApplication() public

configApplication(string $class, array|null $constructorArgs): void

Configure the application class to use in integration tests.

Parameters

string $class

The application class name.

array|null $constructorArgs

The constructor arguments for your application class.

Returns

void

createApp() protected

createApp(): Cake\Core\HttpApplicationInterfaceCake\Core\ConsoleApplicationInterface

Create an application instance.

Uses the configuration set in configApplication().

Returns

Cake\Core\HttpApplicationInterfaceCake\Core\ConsoleApplicationInterface

exec() public

exec(string $command, array $input = []): void

Runs CLI integration test

Parameters

string $command

Command to run

array $input optional

Input values to pass to an interactive shell

Returns

void

Throws

Cake\Console\TestSuite\MissingConsoleInputException

RuntimeException

makeRunner() protected

makeRunner(): Cake\Console\CommandRunnerCake\Console\TestSuite\LegacyCommandRunner

Builds the appropriate command dispatcher

Returns

Cake\Console\CommandRunnerCake\Console\TestSuite\LegacyCommandRunner

mockService() public

mockService(string $class, Closure $factory): $this

Add a mocked service to the container.

When the container is created the provided classname will be mapped to the factory function. The factory function will be used to create mocked services.

Parameters

string $class

The class or interface you want to define.

Closure $factory

The factory function for mocked services.

Returns

$this

modifyContainer() public

modifyContainer(Cake\Event\EventInterface $event, Cake\Core\ContainerInterface $container): Cake\Core\ContainerInterface|null

Wrap the application's container with one containing mocks.

If any mocked services are defined, the application's container will be replaced with one containing mocks. The original container will be set as a delegate to the mock container.

Parameters

Cake\Event\EventInterface $event

The event

Cake\Core\ContainerInterface $container

The container to wrap.

Returns

Cake\Core\ContainerInterface|null

removeMockService() public

removeMockService(string $class): $this

Remove a mocked service to the container.

Parameters

string $class

The class or interface you want to remove.

Returns

$this

useCommandRunner() public

useCommandRunner(): void

Set this test case to use the CommandRunner rather than the legacy ShellDispatcher

Returns

void

Property Detail

$_appArgs protected

The customized application constructor arguments.

Type

array|null

$_appClass protected

The customized application class name.

Type

string|null

$_err protected

Console error output stub

Type

Cake\Console\TestSuite\StubConsoleOutput

$_exitCode protected

Last exit code

Type

int|null

$_in protected

Console input mock

Type

Cake\Console\TestSuite\StubConsoleInput

$_out protected

Console output stub

Type

Cake\Console\TestSuite\StubConsoleOutput

$_useCommandRunner protected

Whether to use the CommandRunner

Type

bool

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.4/trait-Cake.Console.TestSuite.ConsoleIntegrationTestTrait.html