テスト対象コード
SampleClass.php
<?php
class SampleClass
{
public function __construct()
{
exit;
}
public function hoge()
{
return TRUE;
}
}
- hoge()がTRUEを返すことを検証したい
テストコード
SampleClassTest.php
<?php
require_once 'SampleClass.php';
class SampleClassTest extends PHPUnit_Framework_TestCase
{
public function testHogeReturnTrue()
{
$this->class = new SampleClass();
$this->assertTrue($this->class->hoge());
}
}
テスト実行結果
$ phpunit SampleClassTest.php
PHPUnit 3.6.10 by Sebastian Bergmann.
- コンストラクタが呼ばれexitが実行されるために検証結果が得られない
テストコード
SampleClassTest.php
<?php
require_once 'SampleClass.php';
class SampleClassTest extends PHPUnit_Framework_TestCase
{
public function testHogeReturnTrue()
{
$class = $this->getMockBuilder('SampleClass')
->setMethods(NULL)
->disableOriginalConstructor()
->getMock();
$this->assertTrue($class->hoge());
}
}
テスト実行結果
$ phpunit SampleClassTest.php
PHPUnit 3.6.10 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 2.75Mb
OK (1 test, 1 assertion)
- MockBuilderを活用しdisableOriginalConstructor()を設定することで検証結果を得ることができた