我是控制器测试,基本上想要定义一个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
模型或任何模型无关的通用的。
答案 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中使用模型的工厂中使用伪造者一样
我在播种班上做到了