zoukankan      html  css  js  c++  java
  • Factory can't be seen in unit test.

    Factory can't be seen in unit test.

    This is how my ModelFactory.php looks:

    <?php
    
    /** @var IlluminateDatabaseEloquentFactory $factory */
    
    use AppUser;
    use FakerGenerator as Faker;
    use IlluminateSupportStr;
    
    $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(AppCourse::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'),
        ];
    });
    

    And this is how my unit test looks:

    <?php
    
    namespace TestsUnit;
    
    use IlluminateFoundationTestingRefreshDatabase;
    use PHPUnitFrameworkTestCase;
    
    class CourseTest extends TestCase
    {
        use RefreshDatabase;
    
        /** @test */
        public function a_course_belongs_to_a_teacher() {
            $course = factory(AppCourse::class, 1)->create();
    
            //$this->assertInstanceOf(AppCourse::class, $course->teacher);
        }
    }
    

    This is the error I receive InvalidArgumentException: Unable to locate factory with name [default] [AppCourse].

    I can't understand why, any help is appreciated.

    Nakov
    Level 50
    Nakov3 months ago
     

    @catalinul Ah, I see I believe you have the wrong import for the parent class.

    Use this

    use TestsTestCase;
    

    instead of

    use PHPUnitFrameworkTestCase;
    

    as the first one is where Laravel does all it's startup.

  • 相关阅读:
    不能创建会计分录
    java反射,代码优化
    mybatis$和#的区别
    开发中积累的单词800
    mybatis递归,一对多代码示例
    mysql树形结构递归查询
    redis实现分布式锁工具类 灰常好用
    js代码小优化
    spring源码分析 contextConfigLocation属性的位置
    data:image/png;base64这什么玩意
  • 原文地址:https://www.cnblogs.com/mouseleo/p/12693817.html
Copyright © 2011-2022 走看看