ArchUnit: как проверить наличие нежелательных зависимостей в сигнатуре / API класса?
Я хотел бы реализовать правило ArchUnit, которое проверяет нежелательные зависимости. Это легко сделать, но меня интересуют только нарушения, которые являются частью сигнатуры / API класса. Например, если класс использует нежелательную зависимость в частном поле или в качестве параметра частного метода, это нормально, поскольку он не виден снаружи.
Я борюсь с плавным API. Моя отправная точка:
noClasses().that()
.resideInAnyPackage("..domain..", "..application..")
.should()
.dependOnClassesThat()
.resideInAnyPackage(
"badpackage1..",
"badpackage2..");
Как я могу уточнить приведенное выше правило, чтобы оно срабатывало только для нечастных языковых элементов моих классов?
0 ответов
Вы можете извлечь интерфейс и применить проверки к интерфейсу (classes().that().areInterfaces()
). IDE обеспечивают поддержку извлечения интерфейсов.