【发布时间】:2020-11-01 04:14:55
【问题描述】:
我正在为 PHPunit 进行单元测试。代码是:
<?php
namespace Tests\Unit;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use PHPUnit\Framework\TestCase;
class ThreadTest extends TestCase
{
use DatabaseMigrations;
public function test_a_thread_has_replies()
{
$thread = factory('App\Thread')->create();
$this->assertInstanceOf('Illuminate\Database\Eloquent\Collection', $thread->replies);
}
}
当我运行 PHPUnit 时出现错误:
InvalidArgumentException:无法找到 [App\Thread] 的工厂。
我有一个线程工厂:
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use App\Thread;
use Faker\Generator as Faker;
$factory->define(Thread::class, function (Faker $faker) {
return [
'user_id' => factory(App\User::class),
'title' => $faker->sentence,
'body' => $faker->paragraph
];
});
如果我在 Tinker 中使用工厂,它可以正常工作。
我对其他类有类似的测试函数和工厂,这些都可以正常工作。
很可能我犯了一个非常愚蠢的错误,但我找不到它。
有什么建议吗?
亲切的问候,
胡贝特
【问题讨论】: