phpunit workbench包Illuminate \ Database \ Eloquent \ Model not found

时间:2014-04-05 14:12:21

标签: php laravel laravel-4 phpunit

大家好,我在工作台上创建了一个laravel包,它在我的laravel项目上工作,然后我决定为它编写单元测试。我在我的包的供应商和嘲弄上下载了php单元。

我设置了我的phpunit测试文件,当我要模拟这个模型的依赖时:

  public function setUp()
  {
     $model = Mockery::mock('Path/OfMy/Model');
     new MyRepository($model);
  }

当我运行phpunit命令时,它会让我感到厌恶:

  

PHP致命错误:Class' Illuminate \ Database \ Eloquent \ Model'找不到

这就是我设置模型的方式

use Illuminate\Database\Eloquent\Model;

/**
* 
*/
class TableEloquent extends Model
{
    protected $table = "tables";
    protected $fillable = ['text','name'];

    public function relation()
    {
        return $this->hasOne('My\Name\Space\OtherModel','type_id');
    }
}

奇怪的是,我有另一个Model以与Model类相同的方式扩展,并且它没有给出问题。

如果不是提出问题的模型我怎么能弄清楚这种奇怪的行为?

1 个答案:

答案 0 :(得分:1)

要解决此问题,您只需要在\Illuminate\Database\Eloquent\Model方法的顶部模拟setUp(),如下所示:

public function setUp()
{
   Mockery::mock('Illuminate\Database\Eloquent\Model');
   // your set up
}