【问题标题】:Class 'Eloquent' not found when mocking in Laravel在 Laravel 中模拟时找不到“Eloquent”类
【发布时间】:2014-02-15 20:03:13
【问题描述】:

我正在通过 Jeffrey Way 的 Laravel 测试解码,我遇到了一个我似乎无法解决的问题。

我实际上正在学习本教程:http://net.tutsplus.com/tutorials/php/testing-laravel-controllers/ 这是他书中的摘录。

基本上我有一个这样的测试:

class PostsTest extends TestCase {


    public function __construct() 
    {
        $this->mock = Mockery::mock('Eloquent', 'Post');        
    }

就像嘲笑 Eloquent 和 Post 返回一样:

PHP Fatal error:  Class 'Eloquent' not found

当我运行 phpunit.顺便说一句,如果我使用 Jeffrey 的 Laravel 生成器并生成一些脚手架,例如

php artisan generate:scaffold post --fields="title:string, body:string"

然后运行 ​​phpunit 我得到同样的错误。他使用的是相同的:

$this->mock = Mockery::mock('Eloquent', 'Post');

模拟类。有人对可能出现的问题有什么建议吗?


我一直在从头开始学习本教程,但仍然遇到同样的错误。我已将其推送到公共回购,以便人们可以看到:https://github.com/RyanHavoc/tdd-laravel

只要把它拉下来,运行 composer install/update 和 phpunit。

【问题讨论】:

    标签: laravel phpunit mockery


    【解决方案1】:

    我找到了解决问题的方法。

    //Causes the Class 'Eloquent' not found error
    public function __construct()
    {
        $this->mock = Mockery::mock('Eloquent', 'Post');
    }
    
    //Setting the mocks in the setUp() method instead works
    public function setUp() 
    {
        parent::setUp();
        $this->mock = Mockery::mock('Eloquent', 'Post');
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-22
      • 2013-06-06
      • 2015-03-12
      • 2021-10-21
      • 2016-04-02
      • 2014-11-05
      • 2016-10-06
      • 2021-02-02
      相关资源
      最近更新 更多