Я вижу два варианта организации модульных тестов PHPUnit в иерархии пространства имен. Каковы преимущества/недостатки этих двух подходов? Есть ли очевидные недостатки, которые я не рассматривал, что сделало бы один из очевидных лучших вариантов?
Рассмотрим образец класса типа \SomeFramework\Utilities\AwesomeClass
:
-
Подход 1: Поместите каждый класс TestCase в то же пространство имен, что и закрытый класс.
\SomeFramework\Utilities\AwesomeClassTest
- Преимущества
- В соответствии с традиционным подходом к написанию тестов PHPUnit.
- Недостатки
- Меньше гибкости.
- Кажется, нарушает принцип использования пространств имен - несвязанные тесты сгруппированы в одно и то же пространство имен.
- Преимущества
-
Подход 2: Поместите каждую TestCase в пространство имен, указанное после класса.
\SomeFramework\Utilities\AwesomeClass\Test
- Преимущества
- Обеспечивает очень простой/очевидный способ группировать несколько связанных классов TestCase вместе, например, для разных тестовых наборов.
- Недостатки
- Может привести к более глубокой и более сложной иерархии.
- Преимущества