我有一个类似这样的结构:
class Foo
{
public function doFoo($value = '')
{
if (function_exists('foo'))
{
return foo($value);
}
// if php version does not support foo()
// ...
}
}
如何使用PHPUnit测试这段代码以实现100%的代码覆盖率?如果函数foo的存在取决于安装的PHP版本(在本例中假设该函数存在,否则不可能实现100%的代码覆盖率),有没有一种方法可以在运行时禁用/启用PHP函数?
有任何解决方法吗?
编辑:我已经找到了一个解决方案:高级PHP调试器/PECL扩展提供了一个函数*rename_function*来实现此目的。
bool rename_function ( string $original_name , string $new_name )
将orig_name重命名为new_name在全局函数表中。 有助于临时覆盖内置函数。