简介
Fixtures 是测试中非常重要的一部分。主要目的是建立一个固定/已知的环境状态以确保 测试可重复并且按照预期方式运行。
简答说就是Fixtures提供一种预填充数据的方式,即在测试前需要准备好哪些数据,以便测试可以正常展开,不受其他测试的影响。
一个 Fixture 可能依赖于其他的 Fixtures ,所定义的依赖会自动加载。
该方法相比于dump.sql
的填充方法更加灵活, 且不会出去填充的冲突问题.
配置
定义一个Fixtures
通过继成yii\test\ActiveFixture
, 并声明 modelClass
来定义一个Fixtures , depends
为要依赖的Fixtures, 可选。
Fixtures通常放置于tests
目录中的fixtures
目录下.
1 | <?php |
设置填充数据
在 @tests/fixtures/data
目录中,每个Fixtures添加一个数据文档
在位置 @tests/fixtures/data/user.php
中, 设置以下数据, 为要被插入用户表中的数据文件, user1
和user2
为别名, 方便调用
1 | <?php |
使用
在测试用例中, 通过定义_fixtures方法
, 声明需要使用的Fixtures及填充数据文件
1 |
|
通过如下方法, 可以获取插入的记录, 返回值为该Fixture类中对应的modelClass
的一个实例
1 | $user = $this->tester->grabFixture('users', 'default'); |