Организация тестов PHPUnit в пространствах имен
Я вижу два варианта организации модульных тестов PHPUnit в иерархию пространства имен. Каковы преимущества / недостатки этих двух подходов? Есть ли какие-то очевидные недостатки, которые я не учел, которые сделали бы очевидный лучший выбор?
Рассмотрим пример класса как\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.
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.