【发布时间】:2017-08-21 23:42:38
【问题描述】:
我是一名控制器测试人员,本质上想定义一个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 模型或任何模型无关的通用模型。
【问题讨论】:
-
所以就像在那个函数的上下文中一样,我可以简单地编造任何东西来替换 App\Models\User::class?我就是这样称呼那个工厂的?
-
工厂可能依赖于模型,现在我考虑到它,因为 make 和 create 命令。然而,模型工厂并不是生成假数据的唯一方法。编写自己的函数,使用 faker 生成对象..
-
尝试
$modelMock = Mockery::mock('App\Model');并在您的模型工厂调用该类。