现在......我正在使用IoC容器和DI与我的所有项目,我想学习当我使用静态工厂时我应该如何测试我的代码(我当时没有进行任何单元测试)。假设我有以下代码段。
class TestFactory {
public static function create($something) {
switch($something) {
case 1:
return Dummy;
break;
}
}
}
class Client {
public function __construct() {
$this->aClass = TestFactory::create(1);
}
}
如果我想单元测试客户端类,如何在不使用DI或IoC容器的情况下进行单元测试?
答案 0 :(得分:1)
2种方式:
确保TestFactory与测试框架一起正常运行,并且只运行TestFactory测试客户端。 (推荐)
如果必须将客户端作为单独的测试用例分开,则继承Client类并让__construct()返回一个虚拟对象。