首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在PHPUnit注释中使用类常量

在PHPUnit注释中使用类常量
EN

Stack Overflow用户
提问于 2014-09-22 05:47:27
回答 1查看 1.1K关注 0票数 2

PHPUnit手册显示,我可以在注释中使用类常量用于@expectedExceptionCode,请参阅PHPUnit @expectedExceptionCode

我试着在我的名字间隔模型中使用它,这个模型从雄辩扩展而来。当我运行我的测试时,我得到了一个:"PHP致命错误:类‘雄辩’找不到“,运行该应用程序都很好,所以它取决于Unit-测试,不是吗?

有什么想法吗?

代码语言:javascript
运行
AI代码解释
复制
namespace Foo\Models;

use \Eloquent;

class Bar extends Eloquent {
    const ERRORCODE = 150;

    ...
}
代码语言:javascript
运行
AI代码解释
复制
class BarTest extends TestCase {

    /**
     * @expectedExceptionCode       Foo\Models\Bar::ERRORCODE
     */
    public function testFoobar()
    {
        $name = 'foobar';
        Bar::findBarOrFail($name);
    }
}

为求澄清:

代码语言:javascript
运行
AI代码解释
复制
PHP Fatal error:  Class 'Eloquent' not found in PathToProject/app/models/Bar.php

更新

在@的评论后,我得到了上面的代码工作!谢了伙计!

但是,当我在控制器测试中引发异常时,仍然会发生致命错误。

即使我是否使用名称空间。

代码语言:javascript
运行
AI代码解释
复制
use \Eleoquent;
use Foo\Models\Bar;

class TestController extends TestCase {

    /**
     * @expectedExceptionCode       Foo\Models\Bar::ERRORCODE
     */
    public function testStoreActionWithInvalidDatatyp ()
    {
        $this->call('POST', '/routeToException');
    }

更新2

让我的单元测试工作,当我扩展\照明\数据库\雄辩\模型,而不是雄辩。

代码语言:javascript
运行
AI代码解释
复制
namespace Foo\Models;

use \Illuminate\Database\Eloquent\Model;

class Bar extends Model {
    const ERRORCODE = 150;

    ...
}

这与拉勒维尔博士不同。还好吗?

EN

回答 1

Stack Overflow用户

发布于 2014-09-26 04:35:42

"class“\Eloquent实际上是一个别名,在运行时由Laravel框架注册。在设置这些别名之前,您要让PHP解析模型类文件,导致它失败。正确的方法就是避免全局名称空间别名,而使用真实的类名(在您的例子中,是Illuminate\Database\Eloquent\Model而不是Eloquent )。您可以在app/config/app.php中找到一个类别名列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25975725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档