1. 程式人生 > >如何生成測試數據

如何生成測試數據

tab database blog under ner artisan str col eat

laravel有非常方便的方法生成測試用的數據,大概的流程是這樣:

  1. 前提是我們的數據庫已經配置好,並且生成了Model和數據表。
  2. artisan控制臺生成一個seeder: php artisan make:seeder xxx(命名自定)
  3. 打開database/factories/ModelFactory.php寫如何生產模型。
  4. 在創建的seeder中調用factory。
  5. artisan控制臺:php artisan migrate --seed

Why? 為什麽要這樣生成測試數據?

答:在開發中,數據庫沒有導入真正的數據時 我們需要使用一些測試數據去測試我們的項目。

這樣生成有什麽好處?

答:很便捷,不用我們手寫測試數據,節省了大量的時間。

步入正題 如何寫這些代碼?

1、artisan控制臺輸入命令來創建一個seeder:

php artisan make:seeder Lessons_table_seeder

輸入好後 這個seeder就在 database/seeds 文件夾中。

2、在database/factories/ModelFactory.php文件中編寫生成數據的邏輯:

$factory->define(App\Lesson::class, function (Faker\Generator $faker) {
    return [
        
‘title‘ => $faker->sentence, ‘body‘ => $faker->paragraph, ‘free‘ => $faker->boolean() ]; });

3、打開剛剛創建的seeder,調用factory:

    public function run()
    {
        factory(\App\Lesson::class, 20)->create();
    }

create方法中你可以自己設置一些屬性。

在DatabaseSeeder.php中調用這個seeder:

    public function run()
    {
        Model::unguard();

        $this->call(‘Lessons_table_seeder‘);

        Model::reguard();
    }

4、artisan控制臺中輸入:

php artisan migrate --seed

然後去檢查你的數據庫吧,測試數據已經生成了。

如何生成測試數據