Class TestFixture
Cake TestFixture is responsible for building and destroying tables to be used during testing.
Property Summary
-
$_constraints protected
array<string, mixed>
Fixture constraints to be created.
-
$_schema protected
Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface
The schema for this fixture.
-
$_tableLocator protected
Cake\ORM\Locator\LocatorInterface|null
Table locator instance
-
$connection public
string
Fixture Datasource
-
$defaultTable protected
string|null
This object's default table alias.
-
$fields public
array
Fields / Schema for the fixture.
-
$import public
array|null
Configuration for importing fixture schema
-
$records public
array
Fixture records to be inserted.
-
$table public
string
Full Table Name
Method Summary
-
__construct() public
Instantiate the fixture.
-
_getRecords() protected
Converts the internal records into data used to generate a query.
-
_schemaFromFields() protected
Build the fixtures table schema from the fields property.
-
_schemaFromImport() protected
Build fixture schema from a table in another datasource.
-
_schemaFromReflection() protected
Build fixture schema directly from the datasource
-
_tableFromClass() protected
Returns the table name using the fixture class
-
connection() public
Get the connection name this fixture should be inserted into.
-
create() public
Create the fixture schema/mapping/definition
-
createConstraints() public
Build and execute SQL queries necessary to create the constraints for the fixture
-
drop() public
Run after all tests executed, should remove the table/collection from the connection.
-
dropConstraints() public
Build and execute SQL queries necessary to drop the constraints for the fixture
-
fetchTable() public
Convenience method to get a table instance.
-
getTableLocator() public
Gets the table locator.
-
getTableSchema() public
Get and set the schema for this fixture.
-
init() public
Initialize the fixture.
-
insert() public
Run before each test is executed.
-
setTableLocator() public
Sets the table locator.
-
setTableSchema() public
Get and set the schema for this fixture.
-
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\CakeException
on invalid datasource usage.
_getRecords() ¶ protected
_getRecords(): array
Converts the internal records into data used to generate a query.
Returns
array
_schemaFromFields() ¶ protected
_schemaFromFields(): void
Build the fixtures table schema from the fields property.
Returns
void
_schemaFromImport() ¶ protected
_schemaFromImport(): void
Build fixture schema from a table in another datasource.
Returns
void
Throws
Cake\Core\Exception\CakeException
when trying to import from an empty table.
_schemaFromReflection() ¶ protected
_schemaFromReflection(): void
Build fixture schema directly from the datasource
Returns
void
Throws
Cake\Core\Exception\CakeException
when trying to reflect a table that does not exist
_tableFromClass() ¶ protected
_tableFromClass(): string
Returns the table name using the fixture class
Returns
string
connection() ¶ public
connection(): string
Get the connection name this fixture should be inserted into.
Returns
string
create() ¶ public
create(Cake\Datasource\ConnectionInterface $connection): bool
Create the fixture schema/mapping/definition
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
bool
createConstraints() ¶ public
createConstraints(Cake\Datasource\ConnectionInterface $connection): bool
Build and execute SQL queries necessary to create the constraints for the fixture
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
bool
drop() ¶ public
drop(Cake\Datasource\ConnectionInterface $connection): bool
Run after all tests executed, should remove the table/collection from the connection.
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
bool
dropConstraints() ¶ public
dropConstraints(Cake\Datasource\ConnectionInterface $connection): bool
Build and execute SQL queries necessary to drop the constraints for the fixture
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
bool
fetchTable() ¶ public
fetchTable(string|null $alias = null, array<string, mixed> $options = []): Cake\ORM\Table
Convenience method to get a table instance.
Parameters
-
string|null
$alias optional The alias name you want to get. Should be in CamelCase format. If
null
then 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
Cake\ORM\Table
Throws
Cake\Core\Exception\CakeException
If `$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\LocatorInterface
getTableSchema() ¶ public
getTableSchema(): Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface
Get and set the schema for this fixture.
Returns
Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface
init() ¶ public
init(): void
Initialize the fixture.
Returns
void
Throws
Cake\ORM\Exception\MissingTableClassException
When importing from a table that does not exist.
insert() ¶ public
insert(Cake\Datasource\ConnectionInterface $connection): Cake\Database\StatementInterface|bool
Run before each test is executed.
Should insert all the records into the test database.
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
Cake\Database\StatementInterface|bool
setTableLocator() ¶ public
setTableLocator(Cake\ORM\Locator\LocatorInterface $tableLocator): $this
Sets the table locator.
Parameters
-
Cake\ORM\Locator\LocatorInterface
$tableLocator LocatorInterface instance.
Returns
$this
setTableSchema() ¶ public
setTableSchema(Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface $schema): $this
Get and set the schema for this fixture.
Parameters
-
Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface
$schema
Returns
$this
sourceName() ¶ public
sourceName(): string
Get the table/collection name for this fixture.
Returns
string
truncate() ¶ public
truncate(Cake\Datasource\ConnectionInterface $connection): bool
Truncates the current fixture.
Parameters
-
Cake\Datasource\ConnectionInterface
$connection
Returns
bool
Property Detail
$_schema ¶ protected
The schema for this fixture.
Type
Cake\Database\Schema\TableSchemaInterfaceCake\Database\Schema\SqlGeneratorInterface
$fields ¶ public
Fields / Schema for the fixture.
This array should be compatible with {@link \Cake\Database\Schema\Schema}.
The _constraints
, _options
and _indexes
keys are reserved for defining
constraints, options and indexes respectively.
Type
array
$import ¶ public
Configuration for importing fixture schema
Accepts a connection
and model
or table
key, to define
which table and which connection contain the schema to be
imported.
Type
array|null