在 Laravel 中模拟时找不到“Eloquent”类
Posted
技术标签:
【中文标题】在 Laravel 中模拟时找不到“Eloquent”类【英文标题】:Class 'Eloquent' not found when mocking in Laravel 【发布时间】: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。
【问题讨论】:
【参考方案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');
【讨论】:
以上是关于在 Laravel 中模拟时找不到“Eloquent”类的主要内容,如果未能解决你的问题,请参考以下文章
在 laravel 5.3 中调用 SEOStats 实例时找不到类 'SEOstats\SEOstats'
在提交 Vue js 和 Laravel 时找不到 POST 404?