Ярлыки

.htaccess (4) тестирование (8) шаблоны проектирования (3) css (5) Debian (6) docker (2) Doctrine2 (6) Git (6) html (4) java (6) javascript (13) jquery (11) LFS (3) linux (23) mac os (4) mod_rewrite (2) MSSQL (4) MySQL (18) ORM Doctrine (17) patterns (3) PDO (3) perl (7) PHP (64) PHPUnit (8) Python (15) SEO (2) Silex (1) SimpleXML (1) SQL (14) ssh (4) Ubuntu (24) Yii1 (1) Zend Framework (19) ZendFramework2 (8)

пятница, 29 октября 2010 г.

PHPUnit.Тестирование private и protected методов.

Если используется PHP5 (>= 5.3.2) и PHPUnit возможно тестирование защищенных методов класса с помощью reflection. При этом методы становятся public перед запуском тестов.

protected static function getMethod($name) 
{
  $class = new ReflectionClass(MyClass::class);
  $method = $class->getMethod($name);
  $method->setAccessible(true);
  return $method;
}

public function testFoo() 
{
  $foo = self::getMethod('foo');
  $obj = new MyClass();
  $foo->invokeArgs($obj, [...]);
  ...
}

Комментариев нет:

Отправить комментарий