추상 클래스에서 메서드를 테스트하고 싶습니다. 이 클래스에는 정적 인 추상 메소드가 있습니다.PHPunit mockobject 추상 및 정적 메서드
PHPUnit을 사용합니다. 일반적인 추상 메서드를 사용하면 작동합니다.
<?php
abstract class AbstractClass
{
public function concreteMethod()
{
return $this->abstractMethod();
}
public abstract function abstractMethod();
}
class AbstractClassTest extends PHPUnit_Framework_TestCase
{
public function testConcreteMethod()
{
$stub = $this->getMockForAbstractClass('AbstractClass');
$stub->expects($this->any())
->method('abstractMethod')
->will($this->returnValue(TRUE));
$this->assertTrue($stub->concreteMethod());
}
}
?>
phpunit file.php가 작동합니다.
그러나 abstractMethod가 정적 인 경우는 표시
PHP 치명적인 오류 : 클래스 Mock_AbstractClass_6332ae11 1 개 추상 메소드를 포함하고, 따라서 추상적 인 선언해야합니다 또는/usr/지방에 남아있는 방법 (AbstractClass :: abstractMethod)를 구현/apache2/php5.3/lib/php/PHPUnit/Framework/TestCase.php (1135) : 33 행의 eval() '코드