Class TestFixture
Cake TestFixture is responsible for building and destroying tables to be used during testing.
Property Summary
-
$_schema protected
Cake\Database\Schema\TableSchemaInterface&Cake\Database\Schema\SqlGeneratorInterfaceThe schema for this fixture.
-
$_tableLocator protected
Cake\ORM\Locator\LocatorInterface|nullTable locator instance
-
$connection public
stringFixture Datasource
-
$defaultTable protected
string|nullThis object's default table alias.
-
$records public
arrayFixture records to be inserted.
-
$strictFields protected
boolWhether to be strict about invalid fields. Useful for catching typos.
-
$table public
stringThe physical database table name to use.
-
$tableAlias public
stringThe ORM table alias to use.
Method Summary
-
__construct() public
Instantiate the fixture.
-
_aliasFromClass() protected
Returns the ORM table alias using the fixture class.
-
_getRecords() protected
Converts the internal records into data used to generate a query.
-
_schemaFromReflection() protected
Build fixture schema directly from the datasource
-
connection() public
Get the connection name this fixture should be inserted into.
-
fetchTable() public
Convenience method to get a table instance.
-
getTableLocator() public
Gets the table locator.
-
getTableSchema() public
Returns the table schema for this fixture.
-
init() public
Initialize the fixture.
-
insert() public
Run before each test is executed.
-
setTableLocator() public
Sets the table locator.
-
sourceName() public
Get the table/collection name for this fixture.
-
truncate() public
Truncates the current fixture.
Method Detail
__construct() ¶ public
__construct()
Instantiate the fixture.
Throws
Cake\Core\Exception\CakeExceptionon invalid datasource usage.
_aliasFromClass() ¶ protected
_aliasFromClass(): string
Returns the ORM table alias using the fixture class.
Uses tableize() then camelize() to respect custom Inflector rules like uninflected words.
For plugin fixtures (namespace pattern {Plugin}\Test\Fixture\),
the plugin name is automatically prepended to the alias.
Returns
string_getRecords() ¶ protected
_getRecords(): array
Converts the internal records into data used to generate a query.
Returns
array_schemaFromReflection() ¶ protected
_schemaFromReflection(): void
Build fixture schema directly from the datasource
Returns
voidThrows
Cake\Core\Exception\CakeExceptionwhen trying to reflect a table that does not exist
connection() ¶ public
connection(): string
Get the connection name this fixture should be inserted into.
Returns
stringfetchTable() ¶ public
fetchTable(class-string<T>|string|null $alias = null, array<string, mixed> $options = []): $alias is class-string<T> ? T : \Cake\ORM\Table
Convenience method to get a table instance.
Templates
T
of \Cake\ORM\Table Parameters
-
class-string<T>|string|null$alias optional The alias name you want to get. Should be in CamelCase format. If
nullthen the value of $defaultTable property is used.-
array<string, mixed>$options optional The options you want to build the table with. If a table has already been loaded the registry options will be ignored.
Returns
$alias is class-string<T> ? T : \Cake\ORM\TableThrows
Cake\Core\Exception\CakeExceptionIf `$alias` argument and `$defaultTable` property both are `null`.
See Also
getTableLocator() ¶ public
getTableLocator(): Cake\ORM\Locator\LocatorInterface
Gets the table locator.
Returns
Cake\ORM\Locator\LocatorInterfacegetTableSchema() ¶ public
getTableSchema(): Cake\Database\Schema\TableSchemaInterface&Cake\Database\Schema\SqlGeneratorInterface
Returns the table schema for this fixture.
Returns
Cake\Database\Schema\TableSchemaInterface&Cake\Database\Schema\SqlGeneratorInterfaceinit() ¶ public
init(): void
Initialize the fixture.
Returns
voidThrows
Cake\ORM\Exception\MissingTableClassExceptionWhen importing from a table that does not exist.
insert() ¶ public
insert(Cake\Datasource\ConnectionInterface $connection): bool
Run before each test is executed.
Should insert all the records into the test database.
Parameters
-
Cake\Datasource\ConnectionInterface$connection
Returns
boolsetTableLocator() ¶ public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Sets the table locator.
Parameters
-
Cake\ORM\Locator\LocatorInterface$tableLocator LocatorInterface instance.
Returns
$thissourceName() ¶ public
sourceName(): string
Get the table/collection name for this fixture.
Returns
stringtruncate() ¶ public
truncate(Cake\Datasource\ConnectionInterface $connection): bool
Truncates the current fixture.
Parameters
-
Cake\Datasource\ConnectionInterface$connection
Returns
boolProperty Detail
$_schema ¶ protected
The schema for this fixture.
Type
Cake\Database\Schema\TableSchemaInterface&Cake\Database\Schema\SqlGeneratorInterface$strictFields ¶ protected
Whether to be strict about invalid fields. Useful for catching typos.
Type
bool$table ¶ public
The physical database table name to use.
If set, tableAlias must initially be empty. $tableAlias will then be inflected as Inflector::camelize($table).
Type
string$tableAlias ¶ public
The ORM table alias to use.
If set, table must initially be empty. $table will be read from the ORM table loaded via the alias.
If both table and tableAlias are empty, the alias will be inflected
from the class name using tableize() then camelize() to respect
custom Inflector rules. For plugin fixtures, the plugin name is
automatically prepended (e.g., MyPlugin.Articles).
Type
string