40
I see two options for organizing PHPUnit unit tests into a namespace hierarchy. What are the advantages/disadvantages to these two approaches? Are there any obvious flaws I haven't considered that would make one the obvious better choice?
Consider a sample class like \SomeFramework\Utilities\AwesomeClass:
Approach 1: Place each TestCase class into the same namespace as the covered class.
\SomeFramework\Utilities\AwesomeClassTest- Advantages
- Consistent with the traditional approach to writing PHPUnit tests.
- Disadvantages
- Less flexibility.
- Seems to break the principle behind using namespaces - unrelated tests are grouped into the same namespace.
- Advantages
Approach 2: Place each TestCase in a namespace named after the covered class.
\SomeFramework\Utilities\AwesomeClass\Test- Advantages
- Provides a very easy/obvious way to group multiple related TestCase classes together, say for different test suites.
- Disadvantages
- Could result in a deeper, more complex hierarchy.
- Advantages