Код: Выделить всё
@ArchTest
public static final ArchRule daoShouldBeUsedOnlyByHelper = theClass(SegmentDAO.class).should()
.onlyBeAccessed()
.byClassesThat(simpleName(SegmentHelper.class.getSimpleName())).orShould()
.onlyBeAccessed().byClassesThat(simpleName(SegmentHelperFake.class.getSimpleName()));
Код: Выделить всё
java.lang.AssertionError: Architecture Violation [Priority: MEDIUM] - Rule 'classes that have fully qualified name 'me.test.common.db.SegmentDAO' should only be accessed by classes that have fully qualified name 'me.test.common.helpers.db.SegmentHelper' or should only be accessed by classes that have fully qualified name 'me.test.common.test.SegmentHelperFake'' was violated (1 times):
Method calls method in (SegmentHelper.java:45) and Method calls method in (SegmentHelper.java:51) and Method calls method in (SegmentHelper.java:29) and Method calls method in (SegmentHelper.java:38) and Method calls method in (SegmentHelper.java:23) and Method calls method in (SegmentHelper.java:72) and Method calls method in (SegmentHelper.java:78) and Method calls method in (SegmentHelper.java:84) and Method calls method in (SegmentHelper.java:61) and Method calls method in (SegmentHelper.java:67) and Method calls method in (SegmentHelperFake.java:49) and Method calls method in (SegmentHelperFake.java:56) and Method calls method in (SegmentHelperFake.java:31) and Method calls method in (SegmentHelperFake.java:41) and Method calls method in (SegmentHelperFake.java:24) and Method calls method in (SegmentHelperFake.java:79) and Method calls method in (SegmentHelperFake.java:85) and Method calls method in (SegmentHelperFake.java:67) and Method calls method in (SegmentHelperFake.java:73)
Подробнее здесь: https://stackoverflow.com/questions/786 ... roper-test