差异种子和Faker库

时间:2016-02-15 11:19:50

标签: laravel

为了在Laravel应用程序中创建虚拟数据,这是播种数据库或使用Faker库之间的最佳选择?我一直在查阅这两种方法,但没有深入学习。

3 个答案:

答案 0 :(得分:1)

种子和faker不一样。种子是一种在表格中插入虚拟数据的系统。用于生成虚拟数据的faker。所以你可以在不使用faker的情况下编写虚拟数据。

参见laravel项目,有一个在project/database/factories/ModelFactory.php

中使用faker的例子

在这里faker仅用于生成不播种的数据。

如果你想与faker一起播种,首先要创建一个种子(https://laravel.com/docs/5.2/seeding#writing-seeders),然后在run方法中使用该模型工厂,就像这样

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

希望你理解

答案 1 :(得分:0)

理想情况下,您根本不想涉及数据库,因为它的速度相当慢,并且需要花费很长时间才能完成测试,尤其是当您开始拥有数百个成熟的应用程序时。 / p>

你会想看看嘲讽(https://laracasts.com/lessons/mock-that-thang),我建议你看看那些(如laracasts及其他)的无数其他视频如何正确地做到这一点。

答案 2 :(得分:0)

通过种子设定,您可以轻松地在数据库中创建特定数据。例如,当我重置数据库并再次运行迁移时,我使用种子创建管理员帐户,以便我可以登录我的应用程序。

此种子包含电子邮件地址和密码等特定信息,因此我可以登录。

要测试我的应用程序,我会使用Faker库,因为它只会生成我可用于测试的随机数据。例如:我可以在我的应用程序中创建多个用户。然后我可以编辑这些用户或删除它们。但我无法使用这些用户登录,因为我不知道为他们创建的密码。

希望这有助于决定使用什么。