首页 文章

未找到Laravel单元测试类

提问于
浏览
0
<?php 

use App\Repositories\APIModels\SalesError as SalesError;
use App\Repositories\APIModels\Sales as Sales;

class SalesErrorTest extends \TestCase {

    public function setUp()
    {
        parent::setUp();
    }

    public function testCreate()
    {
        $sales_error = new SalesError;
        $sales_error->sale_id = 5;
        $sales_error->error_type = 3;
        $sales_error->description = 'Unknown error occured';
        $sales_error->resolved_at = date('Y-m-d H:i:s');
        $this->assertTrue($sales_error->save());
    }

    public function testRelation()
    {
        $sales = Sales::find(45)->errors();
        var_dump($sales);
    }
}

在上面的测试中,当我运行 testCreate 时,它工作正常 . 但当我运行其他方法时,它说

PHP致命错误:在878行的/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php中找不到类'SalesError'

Sales Model

/**
     * Has Many relation with SalesError
     * 
     * @return object
     */
    public function errors()
    {
        return $this->hasMany('SalesError', 'sale_id', 'sale_id');
    }

Sales Error Model

/**
     * Has many to one relation with Sales Model
     * 
     * @return void
     */
    public function sales()
    {
        $this->belongsTo('Sales', 'sale_id');
    }

1 回答

  • 1

    您应该将完整的 namespace 传递给关系 .

    此外,您错过了 sales 关系中的 return 语句 .

    public function errors()
    {
        return $this->hasMany('App\Repositories\APIModels\SalesError', 'sale_id', 'sale_id');
        // or
        return $this->hasMany(SalesError::class, 'sale_id', 'sale_id');
    }
    
    public function sales()
    {
        return $this->belongsTo(Sales::class, 'sale_id');
    }
    

相关问题