我正在开发一个新的Laravel 4项目,我正在开发一种测试驱动的方法。当我的所有模型都在全局命名空间中时,我能够test models like a boss。但是,我喜欢命名空间。我为所有模型和控制器添加了名称空间,但现在当我运行phpunit
时,我得到ErrorException: User Model is not an valid Class for FactoryMuff
。
我已经尝试在我的模型中定义的$factory
变量中指定名称空间,例如:
public static $factory = array(
'title' => 'string',
'slug' => 'string',
'content' => 'text',
'author_id' => 'factory|\\Project\\Model\\User',
);
但是我仍然得到同样的错误。我也尝试在实际的测试用例中指定命名空间,例如:
$user = FactoryMuff::create('\\Project\\Model\\User');
我仍然得到同样的错误。
我还试图在测试和模型中添加use
语句,以确保在测试范围内可以使用适当的模型,但这也没有产生任何结果。
是否可以将FactoryMuff
与命名空间模型一起使用;如果是的话,怎么样?
答案 0 :(得分:0)
是,可以使用FactoryMuff
的命名空间模型。
除了在模型和 $factory
参数中的FactoryMuff::create()
变量中声明完全命名空间的类之外,还必须使用模型的完整命名空间。关系声明。例如:
public function author()
{
return $this->hasMany('Project\\Model\\Post');
}
在相关模型中:
public function post()
{
return $this->belongsTo('Project\\Model\\User');
}