ArchUnit: как проверить наличие нежелательных зависимостей в сигнатуре / API класса?

Я хотел бы реализовать правило ArchUnit, которое проверяет нежелательные зависимости. Это легко сделать, но меня интересуют только нарушения, которые являются частью сигнатуры / API класса. Например, если класс использует нежелательную зависимость в частном поле или в качестве параметра частного метода, это нормально, поскольку он не виден снаружи.

Я борюсь с плавным API. Моя отправная точка:

noClasses().that()
                .resideInAnyPackage("..domain..", "..application..")
                .should()
                .dependOnClassesThat()
                .resideInAnyPackage(
                    "badpackage1..",
                    "badpackage2..");

Как я могу уточнить приведенное выше правило, чтобы оно срабатывало только для нечастных языковых элементов моих классов?

0 ответов

Вы можете извлечь интерфейс и применить проверки к интерфейсу (classes().that().areInterfaces()). IDE обеспечивают поддержку извлечения интерфейсов.

Другие вопросы по тегам