如何测试使用静态工厂的方法?

时间:2014-01-08 06:24:45

标签: php unit-testing

现在......我正在使用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容器的情况下进行单元测试?

1 个答案:

答案 0 :(得分:1)

2种方式:

  1. 确保TestFactory与测试框架一起正常运行,并且只运行TestFactory测试客户端。 (推荐)

  2. 如果必须将客户端作为单独的测试用例分开,则继承Client类并让__construct()返回一个虚拟对象。