설계 경계를 검사로 남기기
프로젝트가 커지면 계층 사이의 접근 규칙이 코드 리뷰만으로 유지되기 어려울 수 있다. ArchUnitNET은 어느 타입이 어떤 영역에 의존하면 안 되는지 같은 규칙을 코드로 표현한다. 자바 ArchUnit의 접근을 C# 환경에 적용한 도구로, 실행 중 반환값보다 코드의 정적인 관계를 살핀다.
어셈블리와 규칙 구성
분석할 어셈블리를 불러와 구조를 만들고 조건에 맞는 타입이나 멤버를 선택한다. 선택한 대상에 기대하는 제약을 적용하거나 여러 규칙을 조합할 수 있다. 실패했을 때 이유가 드러나도록 규칙을 설명하면 유지보수에 도움이 된다. 분석 범위에서 빠진 어셈블리가 있으면 중요한 관계를 놓칠 수 있으므로 입력 범위를 명확히 한다.
빌드 형태와 연동
여러 닷넷 테스트 프레임워크를 위한 연동 구성이 있다. 분석이 바이너리에 의존하므로 최적화와 컴파일 결과의 영향을 고려해야 한다. 공식 안내는 구조 검사에 Debug 구성을 권한다. 정적인 관계가 규칙에 맞더라도 런타임 구성이나 실제 업무 동작이 올바르다는 뜻은 아니다. 동작 검사와 구조 검사를 함께 유지한다.
관련 문서
ArchUnit / NetArchTest / NUnit / xUnit NET