我可以在FactoryMuff中使用命名空间模型吗?

时间:2013-12-19 01:14:03

标签: php testing laravel-4

我正在开发一个新的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与命名空间模型一起使用;如果是的话,怎么样?

1 个答案:

答案 0 :(得分:0)

,可以使用FactoryMuff的命名空间模型。

除了在模型 $factory参数中的FactoryMuff::create()变量中声明完全命名空间的类之外,还必须使用模型的完整命名空间。关系声明。例如:

public function author()
{
    return $this->hasMany('Project\\Model\\Post');
}

在相关模型中:

public function post()
{
    return $this->belongsTo('Project\\Model\\User');
}