문제

My Spring 웹 프로젝트는 다음과 같습니다.

  1. util 클래스;
  2. 저장소;
  3. 서비스;
  4. 컨트롤러.

    테스트는 다음과 같습니다.

    1. util 클래스를위한 유닛 테스트;
    2. HSQLDB가있는 저장소에 대한 스프링 통합 테스트;
    3. 모의 리포지토리가있는 서비스를위한 단위 테스트;
    4. 모의 서비스가있는 컨트롤러에 대한 장치 테스트.

      전체 프로젝트 기능을 테스트하는 시스템 테스트가있을 수 있습니다. 셀레늄과 같은 외부 도구로 수행하거나 Spring Integration Testing을 사용하여 수행 할 수 있습니다.

      프로젝트에서 이러한 봄 통합 시스템 테스트를 포함하거나 어떻게 든 분리되어야합니까?

      프로젝트의 시스템 테스트를 포함하는 두 가지 문제가 있습니다. 1. 그러한 테스트가 프로덕션 구성으로 실행되지 않기 때문에 구성 튜닝이 필요합니다 (예 : 테스트는 JNDI에서 하나의 데이터 소스가 아닌 로컬 데이터 소스가 필요함). 2. 그들은 자치지가 아니며 외부 자원이 필요합니다. 나는 단지 평소 단위 테스트로 그것을 실행할 수 없다.

      시스템 테스트를 어떻게 구성합니까?

도움이 되었습니까?

해결책

작은 프로젝트에서 나는 그들을 같은 곳에 보관했습니다. 대규모 엔터프라이즈 프로젝트 (예 : 예를 들어 봄을 활용할 수있는 종류)에서는 일반적으로 별도의 패키지 / 프로젝트에서 시스템 테스트를 구성했습니다. 이렇게하면 메인 코드베이스와 별도로 유지됩니다.

이 작업을 수행하지 않으면 시스템의 사용자의 경험에보다 강력하게 초점을 맞추어야하는 어떤 것에 코드에서 "돕는"코드에서 "도움을 줍니까?)의 모든 종류가 있습니다. 짐마자 이 경우 프로젝트 도메인 클래스와 UI 사이의 커플 링으로 끝나면 실제 코드베이스에서 디커플링을 유지하는 데 도움이되는 많은 논리를 복제 할 필요가없는 필연적 인 효과가 있습니다.

대부분의 경우 시스템 시나리오의 논리는 실제로 페이지, 화면, 웹 전화 등에 실제로 집중 될 것이므로 주 프로젝트의 코드를 재사용하는 것은 붉은 청어입니다. 패키지 가이 일어나는 것을 피하기 위해 분리되도록하십시오.

시스템 테스트가 코드와 동일한 버전 제어에 체크되어 있는지 확인하십시오.

지속적인 통합 및 테스트 / 배포를 수행하지 않으면 일부 학습이 구성 파일을 사용하는 데 도움이되는 또 다른 영역 일 수 있습니다. 불행히도 별도의 프로젝트에서 테스트가 있기 때문에 그 문제는 멀리 떨어져 있지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top