Yii2 使用 faker 生成假数据

测试过程中有时候需要生成大量的假数据,faker 是一个生成假数据的类库,可以生成姓名,电话,IP地址,密码,ISBN等等你能想到的或者你想不到的各种类型的假数据。

Yii2.0已经集成该类库,不用再下载了。

以Yii2.0 Basic版为例

1. config\console.php 中添加一条配置信息

'controllerMap' => [
    'fixture' => [
        'class' => 'yii\faker\FixtureController',
    ],
],

注意顶部,定义test测试目录的位置的代码。

Yii::setAlias('@tests', dirname(__DIR__) . '/tests');

2. 创建生成假信息的模版文件

在test目录下面依次新建unit/templates/fixtures目录

然后在fixtures目录下新建users.php文件。内容如下:

// users.php file under template path (by default @tests/unit/templates/fixtures)
/**
 * @var $faker \Faker\Generator
 * @var $index integer
 */
return [
    'name' => $faker->firstName,
    'phone' => $faker->phoneNumber,
    'city' => $faker->city,
    'password' => Yii::$app->getSecurity()->generatePasswordHash('password_' . $index),
    'auth_key' => Yii::$app->getSecurity()->generateRandomString(),
    'intro' => $faker->sentence(7, true),  // generate a sentence with 7 words
];

3. 打开命令行,执行生成假记录命令 

php yii fixture/generate users

生成的假数据位于tests\unit\fixtures\data\users.php

打开如下,有了假数据内容,剩下的就好办了 :)

<?php

return [
    [
        'name' => 'Dawn',
        'phone' => '1-931-080-3527x751',
        'city' => 'Schinnerberg',
        'password' => '$2y$13$ax7ubTMdQoUBkAdQfgW38uPD3Lp9C/X7XfdfSMFl8L1N90PpdXQoK',
        'auth_key' => 'zmk_N4ZX_kOgu72iiWvPFZDUHEhQGYsg',
        'intro' => 'Adipisci nostrum et autem molestias odio.',
    ],
    [
        'name' => 'Hubert',
        'phone' => '1-618-327-3265x917',
        'city' => 'Auerstad',
        'password' => '$2y$13$gSjD/GJZiuPQdjB5FXyf0.fZCD9Jm6KquYRFyoaU6fgT3HHHiRa/q',
        'auth_key' => 'zAVYEriQJJF16DtwwzesVM84gA1UhxFK',
        'intro' => 'Maiores voluptas possimus nihil nesciunt qui commodi maiores qui.',
    ],
];

 

posted @ 2014-10-27 18:25  飞凡123  阅读(3693)  评论(0编辑  收藏  举报