And*_*rey 10 php fixtures yii2 codeception
有没有办法在Yii2/Codeception ActiveFixture中的夹具数据文件中指定另一个夹具的相关行?考虑这个用户/配置文件关系的示例:
user.php的:
return [
'user1' => [
'email' => 'user1@example.net',
]
];
Run Code Online (Sandbox Code Playgroud)
profile.php:
use common\models\User;
return [
'profile1' => [
'user_id' => User::findOne(['email' => 'user1@example.net'])->id;
'name' => 'My Name',
]
];
Run Code Online (Sandbox Code Playgroud)
该文档指出"您可以为行添加别名,以便在测试后期,您可以通过别名引用该行." 有没有办法在另一个灯具内引用行?例如,在profile.php中使用类似$ this-> user('user1') - > id的内容?关于如何做到,我找不到任何提及.你如何创造这种相关的装置?
在执行方法后,别名数据只能Fixture通过其data属性在专用对象的范围内访问load().使这个数据可以从另一个Fixture对象的数据文件访问的唯一方法是将其注册到某个全局对象,例如Applicationobject.
我通常只是在构造依赖数据集之前查询所有需要的数据:
use common\models\User;
$users = User::find()->indexBy('email')->all();
return [
'profile1' => [
'user_id' => $users['user1@example.net']->id,
'name' => 'My Name',
]
];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |