PHPUnit 无法测试自定义异常

PHPUnit fails testing a custom exception

我无法正确测试抛出的异常(是否是命名空间问题)。

这是我的自定义异常:

<?php
namespace Example\Customexception;

class ResourceNotAvailableException extends \Exception {}

这是我正在测试的class:

namespace Example\Lib;

use Example\Customexception\ResourceNotAvailableException;

class Configuration {

    private static $instance;

    private $arrConfig;

    private function __construct($configFile)
    {
        $this->arrConfig = parse_ini_file($configFile, true);
        if ($this->arrConfig == false){
            throw new ResourceNotAvailableException("Config file {$configFile} not available.");
        }   
    }

    public static function getInstance($configFile = "config/config.ini")
    {
        if (self::$instance == null){
            try {
                self::$instance = new Configuration($configFile);
            }
            catch(ResourceNotAvailableException $e) {
                throw $e;
            }
        }
        return self::$instance;
    }

}

这是我的测试 class:

use Example\Lib\Configuration;

class ConfigurationTest extends PHPUnit_Framework_TestCase {


    /**
     * @expectedException Example\Customexception\ResourceNotAvailableException
     */ 
    function testGetInstanceThrowsException()
    {
        $configuration = Configuration::getInstance("configtestini");       
    }


}

这是我得到的输出:

PHPUnit 5.3.2 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 89 ms, Memory: 2.75Mb

There was 1 error:

1) ConfigurationTest::testGetInstanceThrowsException
parse_ini_file(configtestini): failed to open stream: No such file or directory

/home/me/workspace/codeexample/src/Lib/Configuration.php:24
/home/me/workspace/codeexample/src/Lib/Configuration.php:39
/home/me/workspace/codeexample/tests/unit/Lib/ConfigurationTest.php:14

FAILURES!
Tests: 1, Assertions: 0, Errors: 1.

请忽略输出中的行号,因为我从代码中删除了一些注释以使其在此处易于阅读。

谢谢

parse_ini_file() 引发一个错误,该错误被 PHPUnit 的错误处理程序转换为异常。