애플리케이션의 아키텍쳐를 테스트할 수 있는 오픈 소스 라이브러리

https://www.archunit.org/

그런데 아키텍쳐를 테스트한다는게 뭘까? 실제로 Archunit이 진행하는건 패키지, 클래스, 레이어, 슬라이스간의 의존성을 테스트할 수 있는 기능을 제공한다.

더 구체적으로 말하자면, 예를들어

  1. A라는 패키지가 B패키지에서만 사용되고 있는지 확인(패키지의 순환 의존성 검사 가능)
  2. Service라는 이름의 클래스들이 Controller, 또는 Service라는 이름의 클래스에서만 참조하고 있는지 확인
  3. Service라는 이름의 클래스들이 …service라는 패키지에 있는지 확인
  4. A라는 애너테이션을 선언한 메서드만 특정 패키지, 또는 특정 애너테이션을 가진 클래스를 호출하고 있는지 확인
  5. 위와 같은 방법을 이용해 특정한 스타일의 아키텍쳐를 따르고 있는지 확인 가능

설치

의존성만 추가해주자

https://www.archunit.org/userguide/html/000_Index.html

여기서 Junit5와 통합된 버전을 설치했다.

주요 사용법

특정 패키지에 해당하는 클래스를 (바이트 코드로)읽어들이고,

정의된 확인할 규칙을 바탕으로