SSM 프레임 워 크 에서 테스트 단원 의 사용 spring 통합 Junit 프로 세 스 상세 설명
문제.
테스트 클래스 에서 모든 테스트 방법 은 다음 과 같은 두 줄 의 코드 가 있 습 니 다.
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
IAccountService as = ac.getBean("accountService",IAccountService.class);
이 두 줄 코드 는 용 기 를 가 져 오 는 역할 을 합 니 다.쓰 지 않 으 면 빈 포인터 이상 을 직접 알려 줍 니 다.쉽게 지 울 수도 없고.해결 방향 분석
상술 한 문제 에 대하 여 우리 가 필요 로 하 는 것 은 프로그램 이 자동 으로 용 기 를 만 드 는 것 이다.프로그램 이 자동 으로 spring 용 기 를 만 들 수 있다 면 우 리 는 수 동 으로 만 들 필요 가 없고 문제 도 해결 할 수 있 습 니 다.
준 it 유닛 테스트 의 원리(웹 단계 과정 에서 말 한 적 이 있 습 니 다)는 잘 알 고 있 습 니 다.하지만 준 it 는 실현 할 수 없습니다.왜냐하면 우리 가 spring 프레임 워 크 를 사 용 했 는 지 알 수 없 기 때 문 입 니 다.스프링 용 기 를 만 드 는 것 은 말 할 필요 도 없습니다.다행히 준 it 는 우리 에 게 주 해 를 폭로 하여 운행 기 를 교체 할 수 있 게 해 주 었 다.
이 때,우 리 는 spring 프레임 워 크 에 의존 해 야 합 니 다.실행 기 를 제공 하기 때문에 설정 파일(또는 설명)을 읽 어서 용 기 를 만 들 수 있 습 니 다.우 리 는 단지 그것 에 게 프로필 이 어디 에 있 는 지 알려 주면 된다.
배치 절차
첫 번 째 단계:준 it 통합 에 필요 한 jar 를 lib 디 렉 터 리 에 복사 합 니 다.
이 곳 에서 주의해 야 할 것 은 jar 패 키 지 를 가 져 올 때 spring 에서 op 의 jar 패 키 지 를 가 져 와 야 한 다 는 것 입 니 다.
두 번 째 단계:@RunWith 주 해 를 사용 하여 기 존 실행 기 를 교체 합 니 다.
/**
*
* @Version 1.0
*/ @RunWith(SpringJUnit4ClassRunner.class) public class AccountServiceTest {
}
세 번 째 단계:@ContextConfiguration 을 사용 하여 spring 프로필 의 위 치 를 지정 합 니 다.
/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
}
@ContextConfiguration 주석:locations 속성:설정 파일 의 위 치 를 지정 하 는 데 사 용 됩 니 다.클래스 경로 라면 classpath:classes 속성 을 표시 합 니 다.주 해 를 지정 하 는 클래스 입 니 다.xml 설정 을 사용 하지 않 을 때 이 속성 으로 주해 류 의 위 치 를 지정 해 야 합 니 다.
네 번 째 단계:@Autowired 를 사용 하여 테스트 클래스 의 변수 에 데 이 터 를 주입 합 니 다.
/**
*/ @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}
왜 테스트 클래스 를 xml 에 배치 하지 않 습 니까?이 문 제 를 설명 하기 전에 여러분 의 의심 을 풀 고 XML 에 맞 춰 사용 할 수 있 을까요?답 은 긍정 적 이 고 문제 없어 요.사용 할 수 있어 요.
그렇다면 왜 xml 에 설정 하 는 방식 을 사용 하지 않 습 니까?이 이 유 는 이렇다.
첫째:xml 에 bean 을 설정 하면 spring 에서 프로필 을 불 러 와 용 기 를 만 들 때 대상 을 만 듭 니 다.
둘째,테스트 클래스 는 우리 가 테스트 기능 을 할 때 만 사용 할 뿐 프로젝트 에서 프로그램 논리 에 참여 하지 않 고 수요 상의 문 제 를 해결 하지 않 기 때문에 만 들 었 고 사용 하지 않 았 습 니 다.그러면 용기 에 존재 하면 자원 의 낭 비 를 초래 할 수 있다.
따라서 상기 두 가 지 를 바탕 으로 우 리 는 테스트 를 xml 파일 에 설정 해 서 는 안 된다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Systems Manager를 통해 부팅 환경의 Ubuntu 관리AWS Systems Manager(향후 SSM)에서는 EC2 인스턴스뿐만 아니라 시사회 서버에 SSM 에이전트를 관리 대상으로 설치할 수 있기 때문에 관리 대상으로 시도해 봤다. 총체적으로 다음과 같은 공식 문서를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.