Класс «Красноречивый» не найден при насмешке в Laravel

Я просматриваю Laravel Testing Decoded Джеффри Уэя и столкнулся с проблемой, которую не могу решить.

На самом деле я работаю над этим руководством: 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's Laravel Generators и просто генерирую некоторые леса, например.

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

И запустите phpunit, я получаю ту же ошибку. Он использует то же самое:

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

Издеваться над классами. У кого-нибудь есть предложения, в чем может быть дело?


Я снова работал с учебником с нуля и все еще получаю ту же ошибку. Я отправил его в общедоступный репозиторий, чтобы люди могли видеть: https://github.com/RyanHavoc/tdd-laravel

Просто потяните его вниз, запустите установку/обновление композитора и phpunit.


person RyanHavoc    schedule 24.01.2014    source источник


Ответы (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');
}
person RyanHavoc    schedule 25.01.2014