テスト対象コード
Sample.php
<?php
class Sample
{
public function error()
{
$this->redirect();
}
public function redirect()
{
header("Location: http://github.com/");
}
}
- error() は redirect() を呼び出すことを検証したい
テストコード
SampleTest.php
<?php
require_once 'Sample.php';
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testCallRedirectWhenError()
{
$sample = $this->getMockBuilder('Sample')
->setMethods(array('redirect'))
->getMock();
$sample->expects($this->once())->method('redirect');
$sample->error();
}
}
テスト実行結果
$ phpunit SampleClassTest.php
PHPUnit 3.7.13 by Sebastian Bergmann.
.
Time: 0 seconds, Memory: 3.50Mb
OK (1 test, 1 assertion)
- redirect()のheader()を無害化しつつredirect()の呼び出しについての検証結果を得ることができた