2016-05-01 90 views
0

我无法正确测试引发的异常(它是否为空间问题)。PHPUnit未能测试自定义异常

这里是我的自定义异常:

<?php 
namespace Example\Customexception; 

class ResourceNotAvailableException extends \Exception {} 

在这里,类我测试:

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; 
    } 

} 

,这里是我的测试类:

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. 

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

感谢

回答

0

parse_ini_file()提出这是由PHPUnit的错误处理程序变成了一个异常的错误。

相关问题