2016-10-18 6 views
0

웹 응용 프로그램의 경우 대부분의 코드를 Resources 클래스에 작성했습니다. 이제 우리는 "Simple Integration tests"를 사용하여 junit 테스트를 통해 웹 모듈을 유닛 테스트하고 싶습니다.시드 응용 프로그램에서 웹 모듈에 응용 프로그램 서비스를 패키징 할 수 있습니까?

그러나 우리는 이러한 유형의 패키징을 사용하여 리포지토리 만 테스트 할 수 있으며 파인더 및 기타 비즈니스 로직은 테스트 할 수 없습니다.

코드를 리소스 클래스에서 단위 테스트에 삽입 할 수있는 응용 프로그램 서비스로 이동해야합니까? 그렇다면 웹 모듈에 이러한 서비스를 작성할 수 있습니까? 일반적으로 우리는 이러한 서비스를 app 모듈에 작성하지만이 경우 서비스는 웹에있는 파인더에 액세스 할 수 없습니다.

답변

0

리소스 클래스에는 애플리케이션의 REST API를 노출하는 데 필요한 코드 만 포함해야합니다. 비즈니스 로직 없음 애플리케이션 (유스 케이스) 로직, 데이터 액세스 없음. 리소스 클래스는 리포지토리, 서비스 및 찾기와 같은 다른 구성 요소를 사용하여 원하는 결과를 얻을 수 있습니다. 당신이 비즈니스 프레임 워크를 사용하고, 특히 SeedStack 프로젝트에서

, 당신이 DDD 층 모델을 존중하는 것이 좋습니다 :

  • 사업이 도메인 객체를 포함 집계로 표현되는 경우 도메인 층은 (엔티티 및 값 객체) 및 도메인 서비스별로 정의됩니다.
  • 응용 프로그램 계층은 응용 프로그램의 워크 플로를 주도하고 응용 프로그램 서비스를 통해 시스템의 사용 사례를 실행합니다. 이 레이어는 단위 테스트 및 간단한 통합 테스트를 통해 테스트 할 수도 있습니다.
  • 인터페이스 계층은 다른 시스템과의 상호 작용을 처리합니다. 귀하의 경우, 이것은 REST 자원으로 수행됩니다. 이러한 리소스는 필요할 때 데이터베이스를 쿼리하는 데 사용할 수 있습니다.

단위 테스트 및 simple integration tests은 웹 런타임 환경에 의존하기 때문에 REST 리소스를 제외하고 테스트 할 수 있습니다. 이들은 Web integration tests (Arquillian 포함)에서만 테스트 할 수 있습니다.

간단한 통합 테스트 herehere으로 테스트 사례를 찾을 수 있습니다.