在Laravel嘲笑时找不到"Eloquent"等级

Rya*_*voc 3 phpunit laravel mockery

我正在关注Jeffrey Way的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');        
    }
Run Code Online (Sandbox Code Playgroud)

这就像嘲笑Eloquent和Post回归一样:

PHP Fatal error:  Class 'Eloquent' not found
Run Code Online (Sandbox Code Playgroud)

当我运行phpunit.顺便提一下,如果我使用杰弗里的Laravel发生器并且只生成一些脚手架,例如

php artisan generate:scaffold post --fields="title:string, body:string"
Run Code Online (Sandbox Code Playgroud)

并运行phpunit我得到相同的错误.他正在使用相同的:

$this->mock = Mockery::mock('Eloquent', 'Post');
Run Code Online (Sandbox Code Playgroud)

模拟类.有没有人对这个问题有什么建议?


我一直在从头开始学习本教程,但仍然遇到同样的错误.我把它推到了一个公共仓库,所以人们可以看到:https://github.com/RyanHavoc/tdd-laravel

只需将其拉下来,运行composer install/update和phpunit.

Rya*_*voc 6

我找到了解决这个问题的方法.

//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');
}
Run Code Online (Sandbox Code Playgroud)