Trait yii\test\FixtureTrait
实现 | yii\console\controllers\FixtureController |
---|---|
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/test/FixtureTrait.php |
FixtureTrait 提供一系列用于加载,卸载和访问测试用例中的夹具的函数能力。
通过使用 FixtureTrait ,一个测试类可以通过改写 fixtures() 方法来指定哪些夹具被加载。然后,可以通过使用 loadFixtures() 和
unloadFixtures() 方法来加载卸载夹具。当一个夹具被加载后,因为 PHP __get()
魔术方法的缘故,它可以以一个对象属性的方式被访问。
同样,如果夹具是 yii\test\ActiveFixture 的实例,你可以通过 $this->fixtureName('model name')
类似的语法访问一个 AR 模型。
关于 FixtureTrait 更多的使用详情,参考 guide article on fixtures
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
fixtures() | 声明当前测试用例需要的夹具。 | yii\test\FixtureTrait |
getFixture() | 方法指定的夹具。 | yii\test\FixtureTrait |
getFixtures() | 返回 globalFixtures() 和 fixtures() 指定的夹具对象。 | yii\test\FixtureTrait |
globalFixtures() | 声明被所有测试用例都需要的共享夹具。 它的返回值类似 fixtures()。 你应该在基类中重写这个方法。 | yii\test\FixtureTrait |
initFixtures() | 初始化夹具 | yii\test\FixtureTrait |
loadFixtures() | 加载特定的夹具。 | yii\test\FixtureTrait |
unloadFixtures() | 卸载指定的夹具。 这个方法将会调用每个夹具对象的 yii\test\Fixture::unload() 方法。 | yii\test\FixtureTrait |
方法详情
创建指定的夹具实例。 所有的依赖夹具也会被创建。
protected yii\test\Fixture[] createFixtures(array $fixtures) | ||
$fixtures | array | 将要被创建的夹具。你可以提供夹具名称或者夹具配置数组。 如果未提供这个参数,那么 globalFixtures() 和 fixtures() 中指定的夹具将会被创建。 |
return | yii\test\Fixture[] | 创建的夹具实例。 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果夹具没有正确的配置,或者检测到循环依赖。 |
声明当前测试用例需要的夹具。
这个方法的返回值必须是夹具配置数组,例如:
[
// anonymous fixture
PostFixture::className(),
// "users" fixture
'users' => UserFixture::className(),
// "cache" fixture with configuration
'cache' => [
'class' => CacheFixture::className(),
'host' => 'xxx',
],
]
注意:一个测试用例实际使用的夹具包括 globalFixtures() 和 fixtures() 中声明的夹具。
public array fixtures() | ||
return | array | 当前测试用例需要的夹具。 |
---|
方法指定的夹具。
public yii\test\Fixture getFixture($name) | ||
$name | string | 夹具名称。可以是夹具别名,如果没有使用的话,也可以是类名。 |
return | yii\test\Fixture | 夹具对象,如果指定的对象不存在,返回null。 |
---|
返回 globalFixtures() 和 fixtures() 指定的夹具对象。
public yii\test\Fixture[] getFixtures() | ||
return | yii\test\Fixture[] | 当前测试用例加载的夹具对象。 |
---|
声明被所有测试用例都需要的共享夹具。 它的返回值类似 fixtures()。 你应该在基类中重写这个方法。
参见 fixtures().
public array globalFixtures() | ||
return | array | 不同的测试用例所共享的夹具。 |
---|
初始化夹具
public void initFixtures() |
加载特定的夹具。
这个方法会调用每个夹具对象的 yii\test\Fixture::load() 方法。
public void loadFixtures($fixtures = null) | ||
$fixtures | yii\test\Fixture[] | 被加载的夹具。如果这个参数未指定,将会默认使用 getFixtures() 的返回值。 |
卸载指定的夹具。 这个方法将会调用每个夹具对象的 yii\test\Fixture::unload() 方法。
public void unloadFixtures($fixtures = null) | ||
$fixtures | yii\test\Fixture[] | 将被卸载的夹具。如果这个参数未指定,将会默认使用 getFixtures() 的返回值。 |