5.3で名前空間を使用しており、Symfony2フレームワークを使用してPHPUnitで予期される例外をテストしようとしています。
例外がスローされることを期待しています。
$this->setExpectedException('ImageResizerException');
次のエラーが発生します。
PHPUnit 3.7.13 bySebastianBergmann。
/var/www/branches/3.6.0/api/app/phpunit.xml.distから読み取った構成
.E................。
時間:1秒、メモリ:18.25Mb
1つのエラーがありました:
1)AssetManagerBundle \ Tests \ Services \ ImageResizerTest :: testOriginalFile ReflectionException:クラスImageResizerExceptionが存在しません
失敗!テスト:19、アサーション:54、エラー:1。
私は次の構造を持っています:
- AssetManagerBundle \ Services \ ImageResizer.php
- AssetManagerBundle \ Services \ Exceptions \ ImageResizerException.php
- AssetManagerBundle \ Tests \ Services \ ImageResizerTest.php
私のテストクラス:
<?php
namespace AssetManagerBundle\Tests\Services;
use AssetManagerBundle\Services\ImageResizer;
use AssetManagerBundle\Services\Exceptions\ImageResizerException;
class ImageResizerTest extends \PHPUnit_Framework_TestCase
{
public function testOriginalFile()
{
$ir = new ImageResizer();
// test default value
$this->assertEquals('', $ir->getOriginalFile());
// test invalid filename
$this->setExpectedException('ImageResizerException');
$ir->setOriginalFile('/tmp/test.file');
$this->assertEquals('/tmp/test.file', $ir->getOriginalFile());
// test valid filename
$temp_name = tempnam(sys_get_temp_dir(), 'test_'.time());
$handle = fopen($temp_name, 'w+');
fwrite($handle, ' ');
fclose($handle);
$ir->setOriginalFile($temp_name);
$this->assertEquals($temp_name, $ir->getOriginalFile());
}
// more code....
}
例外クラスを表示するには、PHPUnitに対して特別なことをする必要がありますか?
PHPバージョン:
PHP 5.3.10-1ubuntu3.5 with Suhosin-Patch(cli)(ビルド:2013年1月18日23:45:59)Copyright(c)1997-2012 PHP Group Zend Engine v2.3.0、Copyright(c)1998-2012 Zend Technologies with Xdebug v2.1.0、Copyright(c)2002-2010、by Derick Rethans