【发布时间】:2017-03-13 14:40:13
【问题描述】:
我在测试中有一个设置函数,它执行以下操作
function setUp()
{
$this->user = factory(User::class)->create();
}
当然我使用“使用 App\User;”在最顶端。
这是我的模型工厂
/** @var \Illuminate\Database\Eloquent\Factory $factory */
$factory->define(App\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),
];
});
运行 phpunit 时出现错误
InvalidArgumentException: Unable to locate factory with name [default] [App\User].
但是:如果我去 php artisan tinker 运行
factory(User::class)->create();
它有效......我尝试了 App\User::class 和其他东西,甚至将它直接放入测试而不是 setUp 方法。奇怪的是同一文件中的另一个工厂正在工作。
【问题讨论】:
标签: php laravel testing factory