【问题标题】:Can I use namespaced models with FactoryMuff?我可以在 FactoryMuff 中使用命名空间模型吗?
【发布时间】:2013-12-19 01:14:03
【问题描述】:

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

【问题讨论】:

    标签: php testing laravel-4


    【解决方案1】:

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

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

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

    并在相关模型中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-21
      • 2012-03-06
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 2011-11-29
      • 1970-01-01
      相关资源
      最近更新 更多