내 패키지 tree
이 ()인지 여부에 따라 jdepend을 통해 junit에서 테스트하고 싶습니다. 패키지주기 (즉, 직접 순환 종속성이 있음). 현재는 그렇지 않습니다 (아래 출력 참조). jdepend의 Eclipse 플러그인은 tree
의주기를 찾지 못합니다. 그러나 주장 아래, jdepend 설명서에 제안 실패junpend에서 jdepend의 JavaPackage.containsCycle()을 사용하여 내 패키지가 패키지주기에 있는지 여부를 감지합니까?
// setup....
JavaPackage p = jdepend.getPackage("tree");
System.out.println(p.getName() + "'s efferent packages: ");
for (Object jp : p.getEfferents()) {
System.out.println(((JavaPackage) jp).getName());
}
assertThat(p.containsCycle(), is(false));
출력은 다음과 같습니다
는tree's efferent packages:
java.util
java.lang
java.lang.reflect
java.util.logging
java.io
org.hamcrest
주장은() containsCycle()
재귀 getEfferents를 호출한다는 것입니다 실패하는 이유는,의 결과로 패키지를두고 일부 패키지가 이미 있으면 목록을 반환하고 true
을 반환합니다. 그래서 containsCycle()
은 도달 가능한 패키지주기 (즉, 트리가 간접적 인 순환 종속성을 가졌는지 여부)가 있는지를 검사한다.
그러나 순환주기 의존성 즉, ()의 패키지주기 (예 : org.hamcrest의 다른 패키지주기로 연결됨)에서만 테스트 할 수 있습니까?