首页 > 代码库 > 如何生成测试数据

如何生成测试数据

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

然后去检查你的数据库吧,测试数据已经生成了。

如何生成测试数据