没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\test\ActiveFixture

继承yii\test\ActiveFixture » yii\test\BaseActiveFixture » yii\test\DbFixture » yii\test\Fixture » yii\base\Component » yii\base\BaseObject
实现ArrayAccess, Countable, IteratorAggregate, yii\base\Configurable
使用 Traitsyii\base\ArrayAccessTrait, yii\test\FileFixtureTrait
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/test/ActiveFixture.php

ActiveFixture 代表一个 ActiveRecord class 模型或者一个 database table 数据表的夹具。

你需要且必须设置 $modelClass$tableName 两属性之一(它们指向你需要mock的模型或数据表)。同时,你也需要通过设置 $dataFile 属性指向一个文件 用于提供夹具数据。如果你想使用代码生成夹具数据,你也可以重写 getData() 方法。

当夹具被加载的时候,它首先会调用 resetTable() 方法清理表中已经存在的数据。 接着,它将会把 getData() 返回的数据填入表中。

在夹具被加载后,你可以通过 $data 属性访问加载好的数据。如果你设置了 $modelClass 属性,你可以通过 getModel() 方法获得 $modelClass 的一个实例。

有关 ActiveFixture 更多细节和使用信息,参阅 guide article on fixtures

公共属性

隐藏继承的属性

属性类型描述被定义在
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$data array 数据行。每个数组元素代表一行数据(形如:列名 => 列值) yii\test\BaseActiveFixture
$dataDirectory string 包含有夹具数据的目录地址或者 path alias yii\test\FileFixtureTrait
$dataFile string|boolean 包含有夹具数据的文件路径名称,或者 path alias,这些数据将作为 getData() 的返回值。 如果这个属性没有被设置,它将默认为 `FixturePath/data/TableName. yii\test\ActiveFixture
$db yii\db\Connection|array|string 数据库对象,或者Yii应用数据库连接组件ID。 在 DbFixture 创建之后,如果你想改变这个属性,你应该将一个 DB 连接对象赋值给它。 从 2. yii\test\DbFixture
$depends array 这个夹具依赖的夹具类。这个属性必须是一个依赖夹具类名列表。 yii\test\Fixture
$iterator ArrayIterator 遍历集合中 cookies 的迭代器。 yii\base\ArrayAccessTrait
$modelClass string 夹具关联的 AR 模型类 yii\test\BaseActiveFixture
$tableName string 这个夹具对应的数据库表名。如果没有设置此属性,数据库表名将由 $modelClass 决定。 yii\test\ActiveFixture
$tableSchema yii\db\TableSchema 夹具关联的数据表模式。 yii\test\ActiveFixture

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
afterLoad() 这个方法会在当前测试用例的所有夹具数据都会被加载后调用。 yii\test\Fixture
afterUnload() 这个方法会在当前测试的所有的夹具数据都被卸载后调用。 yii\test\Fixture
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeLoad() 这个方法会在当前测试用例的夹具数据被加载前调用。 yii\test\Fixture
beforeUnload() 这个方法会在当前测试的任意夹具数据被卸载前调用。 yii\test\Fixture
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
count() 返回数据项的数量。 Countable 接口需要此方法。 yii\base\ArrayAccessTrait
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getIterator() 返回遍历数据的迭代器。 SPL 接口 IteratorAggregate 需要此方法。 当您使用 foreach 遍历集合时,将隐式调用它。 yii\base\ArrayAccessTrait
getModel() 根据模型名称返回 AR 模型对象 一个模型名称是关联数组 $data 的键。 yii\test\BaseActiveFixture
getTableSchema() yii\test\ActiveFixture
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initializes the object. yii\test\ActiveFixture
load() 加载夹具。 yii\test\ActiveFixture
off() Detaches an existing event handler from this component. yii\base\Component
offsetExists() 接口 ArrayAccess 需要此方法。 yii\base\ArrayAccessTrait
offsetGet() 接口 ArrayAccess 需要此方法。 yii\base\ArrayAccessTrait
offsetSet() 接口 ArrayAccess 需要此方法。 yii\base\ArrayAccessTrait
offsetUnset() 接口 ArrayAccess 需要此方法。 yii\base\ArrayAccessTrait
on() Attaches an event handler to an event. yii\base\Component
trigger() Triggers an event. yii\base\Component
unload() 卸载夹具。 这个方法会在每个测试方法结束时调用。 你可以重写这个方法以执行一些夹具必要的清理工作。 yii\test\ActiveFixture

受保护的方法

隐藏继承的方法

方法描述被定义在
getData() 返回夹具数据。 yii\test\ActiveFixture
loadData() 返回夹具数据 yii\test\FileFixtureTrait
resetTable() 从指定表中删除所有现有数据,并将序列号重置为1(如果有)。 这个方法在将夹具数据填充到与该夹具关联的表之前调用。 yii\test\ActiveFixture

属性详情

$dataFile 公共 属性

包含有夹具数据的文件路径名称,或者 path alias,这些数据将作为 getData() 的返回值。 如果这个属性没有被设置,它将默认为 FixturePath/data/TableName.phpFixturePath 代表夹具类所在的目录,TableName 代表夹具相关的数据库表。 如果你不想加载任何数据,你可以将此属性设置为false。

public string|boolean $dataFile null
$tableName 公共 属性

这个夹具对应的数据库表名。如果没有设置此属性,数据库表名将由 $modelClass 决定。

参见 $modelClass.

public string $tableName null
$tableSchema 公共 只读 属性

夹具关联的数据表模式。

方法详情

getData() 受保护 方法

返回夹具数据。

这个方法的默认实现是尝试返回 $dataFile 指定的外部文件中包含的夹具数据。 这个外部文件应该返回一个包含许多数据行(形如 列名 => 列值)的数组,数组的每一个元素代表表中的一行数据。

如果数据文件不存在,它将返回一个空数组。

protected array getData()
return array

将要被插入数据库表中的数据行。

getTableSchema() 公共 方法

public yii\db\TableSchema getTableSchema()
return yii\db\TableSchema

夹具关联的数据表模式。

throws yii\base\InvalidConfigException

如果数据表不存在的话。

init() 公共 方法

Initializes the object.

This method is invoked at the end of the constructor after the object is initialized with the given configuration.

public void init()
load() 公共 方法

加载夹具。

它用 getData() 返回的数据填充数据表。

如果你重写了这个方法,你需要考虑调用父类,这样 getData() 返回的数据才能被填充进数据表中。

public void load()
resetTable() 受保护 方法

从指定表中删除所有现有数据,并将序列号重置为1(如果有)。 这个方法在将夹具数据填充到与该夹具关联的表之前调用。

protected void resetTable()
unload() 公共 方法

卸载夹具。 这个方法会在每个测试方法结束时调用。 你可以重写这个方法以执行一些夹具必要的清理工作。

public void unload()