大家好,我在工作台上创建了一个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类相同的方式扩展,并且它没有给出问题。
如果不是提出问题的模型我怎么能弄清楚这种奇怪的行为?
答案 0 :(得分:1)
要解决此问题,您只需要在\Illuminate\Database\Eloquent\Model
方法的顶部模拟setUp()
,如下所示:
public function setUp()
{
Mockery::mock('Illuminate\Database\Eloquent\Model');
// your set up
}