如何生成测试数据

Posted Alex_sun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何生成测试数据相关的知识,希望对你有一定的参考价值。

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

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

以上是关于如何生成测试数据的主要内容,如果未能解决你的问题,请参考以下文章

前端开发工具vscode如何快速生成代码片段

Spring Rest 文档。片段生成时 UTF-8 中间字节无效 [重复]

如何在片段着色器中进行自定义模板测试

如何使用 ViewPager 显示相同的片段,但每次加载不同的数据?

postman 自动生成 curl 代码片段

postman 自动生成 curl 代码片段