【发布时间】:2011-07-22 12:56:55
【问题描述】:
我正在使用 PHP 中的许多实用程序库对大型代码库进行单元测试和重构。
有很多这样的库,充满了整个网站使用的便捷方法。大多数这些静态库与配置文件交互(通过另一个静态类)。这是一个很好的例子:
class core_lang {
public static function set_timezone()
{
if(cfg::exists('time_zone')) {
putenv("TZ=".cfg::get('time_zone'));
}
}
}
当然,还有另一层更具体的库在其他函数中调用core_lang:: set_timezone()。
这使得这些类很难编写单元测试,至少在 PHPUnit 中是这样,因为你只能模拟......基本上只有一层。
我订购了《有效地使用遗留代码》一书,但是有哪些策略可以开始重构和管理此类代码以实现可测试性?
【问题讨论】:
标签: php oop architecture phpunit static-libraries