phpunit问题实例化用于测试的新类 - "错误加载类文件"对于不相关的课程

时间:2017-10-12 16:30:39

标签: php phpunit instantiation

我试图测试我的消息类,但是当我运行phpunit时,我在控制台中遇到三个错误:

1) messageClassTest::testCanBeCreatedFromMessageIDAndFBMPageAccessToken
error loading class file: /Users/ads/org/repo/classes/PHPUnit/DbUnit/TestCase.php
error loading class file: /Users/ads/org/repo/classes/Symfony/Component/Yaml/Yaml.php
error loading class file: /Users/ads/org/repo/classes/Composer/Autoload/ClassLoader.php
Undefined index: fallback

/Users/ads/org/repo/classes/message.php:47
/Users/ads/org/repo/classes/message.php:170
/Users/ads/org/repo/ci_tests/messageClassTest.php:18

当我实例化Message类时,错误存在,它与错误日志中的类完全无关,并且当我以相同的方式实例化它时,它在类文件中完美地工作..我做错了什么?< / p>

此外,下面指向消息类文件的其他三个错误是关于数组中不存在的空值的非致命错误,所以我不认为我的麻烦就在那里。

这是我的单元测试文件:

<?php

// backward compatibility
if (!class_exists('\PHPUnit\Framework\TestCase') &&
    class_exists('\PHPUnit_Framework_TestCase')) {
    class_alias('\PHPUnit_Framework_TestCase', 'PHPUnit\Framework\TestCase');
}

require_once __DIR__ . '/../classes/message.php';


class messageClassTest extends PHPUnit\Framework\TestCase {

    private $message;

    public function setup() {
        $FBM_PAT = "token";
        $this->message = Message::createNewMessage(1, $FBM_PAT);

    }

    public function testCanBeCreatedFromMessageIDAndFBMPageAccessToken()
    {

        $class = Message::class;
        $message = $this->message;
        $this->assertInstanceOf($class, $message);
    }
}




?>

此外,我以其他Stack Overflow帖子建议的方式实例化了消息对象:

PHPUnit: include class after mocking it

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题 - 我认为未定义的索引对于测试其自己的文件中的实际类并不是致命的错误,但对于phpunit来说这是一个致命的错误。我刚刚在类文件中添加了条件检查,以确定是否存在回退值,并修复了我的问题......:D