PHPUnit5.0中文手册14. 扩展 PHPUnit从 PHPUnit_Extensions_TestDecorator 派生子类

从 PHPUnit_Extensions_TestDecorator 派生子类

可以将测试用例或者测试套件包装在 PHPUnit_Extensions_TestDecorator 的子类中并运用 Decorator(修饰器)设计模式来在测试运行前后执行一些动作。

PHPUnit 了包含了一个具体的测试修饰器:PHPUnit_Extensions_RepeatedTest。它用于重复运行某个测试,并且只在全部循环中都成功时计为成功。

Example 14.5, “RepeatedTest 修饰器”展示了测试修饰器 PHPUnit_Extensions_RepeatedTest 的一个删减版本,用以说明如何编写你自己的测试修饰器。

Example 14.5. RepeatedTest 修饰器


= 0) {
            $this->timesRepeat = $timesRepeat;
        }
    }
    public function count()
    {
        return $this->timesRepeat * $this->test->count();
    }
    public function run(PHPUnit_Framework_TestResult $result = NULL)
    {
        if ($result === NULL) {
            $result = $this->createResult();
        }
        for ($i = 0; $i < $this->timesRepeat && !$result->shouldStop(); $i++) {
            $this->test->run($result);
        }
        return $result;
    }
}
?>