La fábrica no se puede ver en la prueba unitaria.

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.

Nakov
Nivel 50
Nakov Hace 3 meses
 

@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.

Supongo que te gusta

Origin www.cnblogs.com/mouseleo/p/12693817.html
Recomendado
Clasificación