Размещение хеша рядом с идентификатором, чтобы обеспечить его безопасность, или заполнение идентификатора дополнительными данными, или даже преобразование идентификатора в шестнадцатеричный код, я думаю, все будет работать довольно хорошо.
I always place my unit tests in a subdirectory to the related code called test.
For example: /libs/authentication, the tests would be placed in /libs/authentication/tests
Обычная структура проекта - иметь отдельный каталог с тестами, причем тесты также подразделяются по тому, что они тестируют.
Я предпочитаю хранить их в отдельном каталоге, обычно называемом «unittests» или просто «tests». Затем я играю в игры в Makefile, чтобы автоматически обрабатывать этот каталог, если он существует.
Это немного сложно настроить, но я лично предпочитаю, чтобы модульные тесты не загромождали функциональный код. Таким образом, они достаточно "близки", чтобы быть очевидными, но не все время вам в лицо.
for each project there is a test project
Example naming
main project
main project testing
Мы храним отдельный каталог с иерархия параллельных классов. Имя класса модульного теста - Test [ClassNameUnderTest]. Если необходимо несколько тестовых классов, они помечаются постфиксом _ и дополнительным текстом.
Я храню отдельное дерево исходных текстов тестов, которое имитирует структуру пакета моего исходного дерева.
Пример:
/src/main/java/com/xyz/MyClass.java
/src/test/java/com/xyz/MyClassTest.java
С помощью этой структуры вы можете тестировать методы уровня пакета.