如何在没有模型的情况下定义Laravel工厂?

时间:2017-08-21 23:42:38

标签: laravel testing

我是控制器测试,基本上想要定义一个factory来表示来自互联网的帖子。

这篇文章在控制器中被分成几个模型。

虽然我对整个控制器进行了功能测试,但如何在没有模型的情况下创建factory代表前端帖子?

factory似乎是这样的:

$factory->define(App\Models\User::class, function (Faker\Generator $faker) {

static $password;

return [
    'name' => $faker->name,
    'email' => $faker->unique()->safeEmail,
    'password' => $password ?: $password = bcrypt('secret'),
    'remember_token' => str_random(10),
    ];
});

它是App\Models\User::class扔给我的。我想要一个与User模型或任何模型无关的通用的。

2 个答案:

答案 0 :(得分:2)

您将必须在播种器中生成一个创建查询生成器实例。因此,例如,您希望在气球表中添加示例数据:

DB::table('table_name')->insert(
  [
   'name' => $faker->name, 
   'email' => $faker->unique()->safeEmail, 
   'password' => $password ?: $password = bcrypt('secret'),
   'remember_token' => str_random(10)
 ]
);

您将必须对要插入给定表的每一行执行此操作。 您不会担心模型工厂,因为没有模型。

答案 1 :(得分:0)

您可以使用laravel随附的Faker

use Faker\Factory;

$faker = Factory::create();

然后使用伪造者,就像您在laravel中使用模型的工厂中使用伪造者一样

我在播种班上做到了

here what i did