Trait yii\test\FixtureTrait
Implemented by | yii\console\controllers\FixtureController |
---|---|
Available since version | 2.0 |
Source Code | https://github.com/yiisoft/yii2/blob/master/framework/test/FixtureTrait.php |
FixtureTrait provides functionalities for loading, unloading and accessing fixtures for a test case.
By using FixtureTrait, a test class will be able to specify which fixtures to load by overriding
the fixtures() method. It can then load and unload the fixtures using loadFixtures() and unloadFixtures().
Once a fixture is loaded, it can be accessed like an object property, thanks to the PHP __get()
magic method.
Also, if the fixture is an instance of yii\test\ActiveFixture, you will be able to access AR models
through the syntax $this->fixtureName('model name')
.
For more details and usage information on FixtureTrait, see the guide article on fixtures.
Public Methods
Method | Description | Defined By |
---|---|---|
fixtures() | Declares the fixtures that are needed by the current test case. | yii\test\FixtureTrait |
getFixture() | Returns the named fixture. | yii\test\FixtureTrait |
getFixtures() | Returns the fixture objects as specified in globalFixtures() and fixtures(). | yii\test\FixtureTrait |
globalFixtures() | Declares the fixtures shared required by different test cases. | yii\test\FixtureTrait |
initFixtures() | Initialize the fixtures. | yii\test\FixtureTrait |
loadFixtures() | Loads the specified fixtures. | yii\test\FixtureTrait |
unloadFixtures() | Unloads the specified fixtures. | yii\test\FixtureTrait |
Protected Methods
Method | Description | Defined By |
---|---|---|
createFixtures() | Creates the specified fixture instances. | yii\test\FixtureTrait |
Method Details
Creates the specified fixture instances.
All dependent fixtures will also be created. Duplicate fixtures and circular dependencies will only be created once.
protected yii\test\Fixture[] createFixtures ( array $fixtures ) | ||
$fixtures | array | The fixtures to be created. You may provide fixture names or fixture configurations. If this parameter is not provided, the fixtures specified in globalFixtures() and fixtures() will be created. |
return | yii\test\Fixture[] | The created fixture instances |
---|---|---|
throws | yii\base\InvalidConfigException | if fixtures are not properly configured |
Declares the fixtures that are needed by the current test case.
The return value of this method must be an array of fixture configurations. For example,
[
// anonymous fixture
PostFixture::class,
// "users" fixture
'users' => UserFixture::class,
// "cache" fixture with configuration
'cache' => [
'class' => CacheFixture::class,
'host' => 'xxx',
],
]
Note that the actual fixtures used for a test case will include both globalFixtures() and fixtures().
public array fixtures ( ) | ||
return | array | The fixtures needed by the current test case |
---|
Returns the named fixture.
public yii\test\Fixture|null getFixture ( $name ) | ||
$name | string | The fixture name. This can be either the fixture alias name, or the class name if the alias is not used. |
return | yii\test\Fixture|null | The fixture object, or null if the named fixture does not exist. |
---|
Returns the fixture objects as specified in globalFixtures() and fixtures().
public yii\test\Fixture[] getFixtures ( ) | ||
return | yii\test\Fixture[] | The loaded fixtures for the current test case |
---|
Declares the fixtures shared required by different test cases.
The return value should be similar to that of fixtures(). You should usually override this method in a base class.
See also fixtures().
public array globalFixtures ( ) | ||
return | array | The fixtures shared and required by different test cases. |
---|
Initialize the fixtures.
public void initFixtures ( ) |
Loads the specified fixtures.
This method will call yii\test\Fixture::load() for every fixture object.
public void loadFixtures ( $fixtures = null ) | ||
$fixtures | yii\test\Fixture[]|null | The fixtures to be loaded. If this parameter is not specified, the return value of getFixtures() will be used. |
Unloads the specified fixtures.
This method will call yii\test\Fixture::unload() for every fixture object.
public void unloadFixtures ( $fixtures = null ) | ||
$fixtures | yii\test\Fixture[]|null | The fixtures to be loaded. If this parameter is not specified, the return value of getFixtures() will be used. |