PHPUnit needs the dom, json extensions. These extensions are usually enabled by default. PHPUnit also needs the reflection, pcre and spl extensions. These extensions are default enabled and cannot be disabled without patching PHP’s build system or C sources. To use the code coverage report feature, you will need to have the Xdebug (2.7.0 and later) and tokenizer extensions. The xmlwriter extension is required to generate XML reports. Unit tests are intended to be a good practice for developers to identify and fix bugs, refactor code, and serve as documentation for the unit of software being tested. Unit tests should cover all possible paths within a program to reap these benefits. A unit test typically covers one path within a function or method. A test method is not always an independent, encapsulated entity. There are often implicit dependencies between test method, which are hidden in the test's implementation scenario.