2014-01-24 17 views
3

我通過Jeffrey Way的Laravel測試解碼並且我遇到了一個我似乎無法解決的問題。當在Laravel中嘲笑時找不到類'雄辯'

我其實是通過本教程工作:http://net.tutsplus.com/tutorials/php/testing-laravel-controllers/這是他的書的摘錄。

基本上我有一個測試,像這樣:

class PostsTest extends TestCase { 


    public function __construct() 
    { 
     $this->mock = Mockery::mock('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

只要把它拉下來,運行作曲家安裝/更新和phpunit。

回答

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'); 
}