저는 스프링 MVC 프로젝트에서 작업 중이며 소스 트리의 다양한 컴포넌트에 대한 단위 테스트를하고 있습니다. I는 LoginService
가 주입 있어야 제어기 HomeController
를 가질 경우, 예를 들어유닛 테스트와 Spring과의 통합 테스트
, 다음 제 단위 테스트 HomeControllerTest
에 단순히 (스프링의 외부) 정상적으로 객체를 인스턴스화하고 속성 주입 :
protected void setUp() throws Exception {
super.setUp();
//...
controller = new HomeController();
controller.setLoginService(new SimpleLoginService());
//...
}
이것은 각 구성 요소를 분리 된 단위로 테스트하는 데 효과적입니다. 클래스를 작성하고 성공적인 단위 테스트를 작성한 후 프로젝트에서 수십 개의 클래스가 생겼으나, 스프링 MVC를 업데이트하는 것을 잊어 버렸습니다. 전개 된 응용 프로그램에서 실제 배선 작업을 수행하는 컨텍스트 파일. 나는 프로젝트를 Tomcat에 배포하고 non-wired-up beans에서 NullPointers를 찾을 때 컨텍스트 파일을 업데이트하는 것을 잊었다. 그것이 내가했던 것처럼, 개별 콩에 대한 단위 테스트를 작성하는 것이 정상입니다, 다음 테스트의 두 번째 세트를 만들 -
이 나의 첫번째 봄 프로젝트입니다 :
그래서 여기 내 질문 있습니다 (통합 테스트) 실제 애플리케이션 컨텍스트에서 모든 것이 예상대로 작동하는지 테스트하십시오. 이것에 대한 가장 좋은 방법이 있습니까?
또한 단위 테스트를 통합 테스트와 어떻게 구분합니까? 나는 모든 소스 코드를
src
,test
의 단위 테스트 - 통합 테스트 케이스에 대한 두 번째 테스트 폴더 (예 :test-integration
)가 있어야합니까? 오히려 내가 오히려 사회의 나머지 물어 바퀴를 다시 발명보다 - 이것이 나의 첫번째 봄 프로젝트이기 때문에
, 나는 다른 사람들이 일반적으로 이런 종류의 일에 대해 이동하는 방법 궁금합니다.
이것은 좋은 전략처럼 들립니다. 하지만 동일한 디렉토리에있는 유닛 테스트와 통합 테스트를 통해 이클립스가 서로 구분할 수있는 방법이 없다. 그렇다. Eclipse의 junit 테스트 실행 옵션은 Ant를 실행하거나 특정 폴더에서 모두 실행하는 것입니다. Ant와 같은 이름으로 나눌 수는 없습니다. –
다시 돌아가서 이클립스를 확인해야했다. 맞다. 같은 디렉토리에 있다면 테스트를 차별화 할 방법이 없다. 마지막 Spring 프로젝트는 Idea/Intellij에서 이루어졌으며 IDE 구성이 무엇인지 정확하게 기억하지 못할 정도로 오래되었습니다. –