Class yii\test\ActiveFixture
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 |
属性详情
包含有夹具数据的文件路径名称,或者 path alias,这些数据将作为 getData() 的返回值。
如果这个属性没有被设置,它将默认为 FixturePath/data/TableName.php
,FixturePath
代表夹具类所在的目录,TableName
代表夹具相关的数据库表。
如果你不想加载任何数据,你可以将此属性设置为false。
这个夹具对应的数据库表名。如果没有设置此属性,数据库表名将由 $modelClass 决定。
参见 $modelClass.
夹具关联的数据表模式。
方法详情
返回夹具数据。
这个方法的默认实现是尝试返回 $dataFile 指定的外部文件中包含的夹具数据。 这个外部文件应该返回一个包含许多数据行(形如 列名 => 列值)的数组,数组的每一个元素代表表中的一行数据。
如果数据文件不存在,它将返回一个空数组。
protected array getData() | ||
return | array | 将要被插入数据库表中的数据行。 |
---|
public yii\db\TableSchema getTableSchema() | ||
return | yii\db\TableSchema | 夹具关联的数据表模式。 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果数据表不存在的话。 |
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() |
public void load() |
从指定表中删除所有现有数据,并将序列号重置为1(如果有)。 这个方法在将夹具数据填充到与该夹具关联的表之前调用。
protected void resetTable() |
卸载夹具。 这个方法会在每个测试方法结束时调用。 你可以重写这个方法以执行一些夹具必要的清理工作。
public void unload() |