2017-03-15 50 views
-1

如何测试一个方法是否与phpunit一起是静态的?PHPUnit测试如果方法是静态方法

我有一个静态方法\ProcessWire\className::getModuleInfo,我想添加一个测试,以确保它是静态的。我怎样才能做到这一点?

+2

你为什么要测试?海事组织,这样的测试没有任何价值。当然,除非你正在研究一个代码生成器并且想验证它的输出。 –

+0

为了测试我是否可以调用静态方法而不是创建类的新实例,然后才能调用它? – SheperdOfFire

+0

如果你不能静态调用一个方法,php运行时会抛出一个异常。你不需要测试来做到这一点。这是一个尝试测试PHP。你不需要测试php,你只需要测试你的域代码。 – sensorario

回答

1

您可以使用Reflection确认的方法是static

<?php 
class Apple { 
    public function firstMethod() { } 
    final protected function secondMethod() { } 
    private static function thirdMethod() { } 
} 

$class = new ReflectionClass('Apple'); 
// Only return method data that is a static method 
$methods = $class->getMethods(ReflectionMethod::IS_STATIC); 
// shows information only for `thirdMethod()` 
var_dump($methods);