@catalinul Ah, veo que creo que tienes una importación incorrecta para la clase padre.
Utilizar este
use Tests\TestCase;
en lugar de
use PHPUnit\Framework\TestCase;
como el primero es donde Laravel hace todo su inicio.
@catalinul Ah, veo que creo que tienes una importación incorrecta para la clase padre.
Utilizar este
use Tests\TestCase;
en lugar de
use PHPUnit\Framework\TestCase;
como el primero es donde Laravel hace todo su inicio.
La fábrica no se puede ver en la prueba unitaria.
Así es como se ve mi ModelFactory.php:
<?php /** @var \Illuminate\Database\Eloquent\Factory $factory */ use App\User; use Faker\Generator as Faker; use Illuminate\Support\Str; $factory->define(User::class, function (Faker $faker) { return [ 'name' => $faker->name, 'email' => $faker->unique()->safeEmail, 'email_verified_at' => now(), 'password' => 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), ]; }); $factory->define(\App\Course::class, function (Faker $faker) { return [ 'user_id' => function () { return (factory(User::class)->create())->id; }, 'name' => $faker->sentence, 'short_description' => $faker->sentence(20), 'description' => $faker->paragraph(10), 'seats' => random_int(0, 10), 'expiry_date' => $faker->dateTimeBetween('+0 days', '+3 months'), ]; });
Y así es como se ve mi prueba de unidad:
<?php namespace Tests\Unit; use Illuminate\Foundation\Testing\RefreshDatabase; use PHPUnit\Framework\TestCase; class CourseTest extends TestCase { use RefreshDatabase; /** @test */ public function a_course_belongs_to_a_teacher() { $course = factory(\App\Course::class, 1)->create(); //$this->assertInstanceOf(\App\Course::class, $course->teacher); } }
Este es el error que recibo
InvalidArgumentException: Unable to locate factory with name [default] [App\Course].
No puedo entender por qué, cualquier ayuda es apreciada.