Phpunit тестирование приватных статических методов практически не отличается от тестирования приватных (не статических) методов.
Т.е. используем ReflectionClass, делаем метод публичным и вызываем с помощью invoke.
На примере, чтобы вызвать приватный статический метод privateStaticMethod из класса Helper_PrivateStatic, можно сделать так:
$class = new ReflectionClass('Helper_PrivateStatic');
$method = $class->getMethod('privateStaticMethod');
$method->setAccessible(true);
$result = $method->invoke('Helper_PrivateStatic', 2);
$this->assertEquals(4, $result);
Создали reflection класс на основе класса Helper_PrivateStatic. Далее получили один из методов класса - privateStaticMethod и сделали его публичным с помощью меода setAccessible. Далее с помощью invoke вызвали этот метод, который раньше являлся приватным статическим.
Тестирование нескольких кейсов с помощью dataProvider:
class Helper_PrivateStaticTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider privateStaticMethodProvider
*/
public function testPrivateStaticMethod($input, $expectedOutput)
{
$class = new ReflectionClass('Helper_PrivateStatic');
$method = $class->getMethod('privateStaticMethod');
$method->setAccessible(true);
$result = $method->invoke('Helper_PrivateStatic', $input);
$this->assertEquals($expectedOutput, $result);
}
public function privateStaticMethodProvider()
{
return array(
array(
2,
4,
),
array(
4,
8
),
array(
200,
400
),
);
}
}