測試過程中有時候需要生成大量的假數據,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.', ], ];
