Легче разместить тестовые файлы рядом с исходными файлами, которые они тестируют (в том же каталоге src
), или должен быть создан отдельный каталог tests
с зеркальной иерархией?Следует ли разместить тестовый файл в той же папке, что и исходный файл?
Наличие их в одной папке, по-видимому, облегчает жизнь, когда дело касается обслуживания, но также толпит исходные каталоги.
Вариант 1: Структуры каталогов при наличии отдельных папок для источника и тестов:
- src
+-- item.ts
`-- util
+-- helper.ts
- test
+-- item.test.ts
`-- util
`-- helper.test.ts
Вариант 2: структуры каталогов при наличии обоих типов файлов, в том же каталоге:
- src
+-- item.ts
+-- item.test.ts
`-- util
+-- helper.ts
`-- helper.test.ts
Раньше я всегда ходил с опцией 1, пока не пробовал angular-cli
и не создавал файлы кода вместе с тестовыми файлами, как в варианте 2, w Я заставил меня переосмыслить все это.
Во-первых, на основе DRY опция 2 помогает нам не делать 2 изменения, если есть какие-либо изменения имени каталога. Во-вторых, Лично мне нравится вариант 2, потому что для TDD намного проще. –
@DavidGuan Это имеет смысл, но в некотором смысле это делает код менее «организованным». Я чувствую, что именование каталогов не будет проблемой, если есть какая-то оснастка для зеркальной структуры каталогов. – UghSegment
Я бы сказал, что вариант 1, хотя вы в конечном итоге повторяете себя, делает ваши сборки проще и быстрее, поскольку вы можете просто игнорировать одну папку вместо проверки каждого файла, но это может быть только миллисекунды. Я не думаю, что это имеет огромное значение, поэтому просто пойдите с тем, что, по вашему мнению, лучше всего работает с вами. – George