Список жестко закодированных строк / перечислений, используемых в пакете Java или в исходной папке - PullRequest
0 голосов
/ 18 мая 2018

Существует ли какая-либо инфраструктура тестирования, которая предоставляет некоторый базовый код для написания теста, чтобы проверить, есть ли какая-либо дублирующаяся строка, например, для теста, который получает все жестко закодированные строки, как в переменных локальной переменной / экземпляра и т. Д., Определенных в файлах java (пакеты или исходная папка) по сравнению с определенными константами.Целью этого является не только проверка дублирующейся строки, но и получение базы для некоторого архитектурного теста, такого как константы, определенные в пакете А., не должны использоваться в определенных пакетах.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Попробуйте использовать SonarQube для поиска дублирующихся строк.

Для констант, которые определены в пакете A и не должны использоваться в пакете B, я думаю, вам лучше сократить область действия констант до private или package-private.

0 голосов
/ 18 мая 2018

Я думаю, что такое тестирование принесет команде больше путаницы, чем пользы.Определение дублированных строковых литералов как констант в одном месте - это в основном хорошая практика, но если у вас есть только одно использование определенного значения, это может быть избыточно.Более того, некоторые команды предпочитают хранить константу внутри класса, если она использовалась в одном классе несколько раз.

Гораздо лучше использовать инструменты статического анализа кода, такие как Sonar , чтобы выяснить такиематериал, он будет выделен, если вы используете несколько строковых литералов несколько раз, не определяя их как константу.Написание юнит-теста для такой задачи в принципе возможно, но не стоит.Если вы уверены, что хотите это сделать, вам нужен доступ к исходным файлам и написать код для поиска строковых литералов, заключенных в двойные кавычки, и проверки по своему желанию.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...