我正在关注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');
}
就像嘲笑Eloquent和Post回归一样:
PHP Fatal error: Class 'Eloquent' not found
当我运行phpunit时。顺便提一下,如果我使用杰弗里的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
只需将其拉下来,运行composer install / update和phpunit。
答案 0 :(得分: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');
}