@RunWith JUnit 확장 하는 어노테이션이며 SpringJUit4classRunner로 JUnit용 테스트 컨텍스트 프레임 워크 확장 클래스를 지정하면 테스트 진행 시 컨텍스트를 생성하고 관리하는 작업을 한다.
지정하지 않으면 SpringRunner.class로 사용
@ContextConfiguration
Spring Bean 메타 설정 파일의 위치를 지정
지정하지 않는다면 테스트 파일의 패키지에서 설정 파일을 찾음
ContextConfigLocationTest-context.xml or contextconfigLocationtest-context.xml 대소 구분 없음
@WebAppConfiguration
웹 어플리케이션 전용 DI 컨테이너로 처리
@ignore
해당 테스트를 테스트를 하지 않는다.
@Test
단위 테스트를 선언
@Test(timeout=6000) 단위는 밀리, 해당 시간을 넘기면 실패
@Test(expected=NullPointerException)은 NullPointerException이 발생해야 통과
@Before
테스트 이전에 실행 할 메소드를 지정
테스트 메소드가 실행 될 때마다 객체를 생성하여 실행
@After
테스트 이후에 실행 할 메소드를 지정
테스트 메소드가 실행 될 때마다 객체를 생성하여 실행
@BeforeClass
테스트 이전에 실행 할 메소드를 지정
@Before과 차이점은 한번만 실행되며 static으로 선언
@Afterclass
테스트 이후에 실행 할 메소드를 지정
@Afterd와 차이점은 한번만 실행되며 static으로 선언해야한다
-클래스/메소드
MockMvc 서버를 실행 하지 않고 스프링 MVC 동작을 재현할 수 있는 클래스 Mockmvc는 TestDispatcherServlet에게 요청
perform() DispatherServlet에 요청 get, post, delete, put, fileUpload 등 메소드 제공 ResultActions() 호출
MockHttpServletRequestBuilder() param/ params : 요청 파라미터 설정 header/ headers : 요청 헤더 설정 cookie : 쿠키 설정 content : 요청 본문 설정 requestAttr : 요청 스코프에 객체 설정 flashAttr : 플래시 스코프에 객체를 설정 sessionAttr : 세션 스코프에 객체를 설정
MockMvcResultMatchers() status : HTTP 상태 코드 검증 header : 응답 헤더의 상태 검증 cookie : 쿠키 상태 검증 content : 응답 한 본문 내용 검증 view : 반환 된 뷰 이름 검증 forwardedUrl : 경로 검증 redirectedUrl : 경로나 url 검증 model : 모델 상태 검증 flash : 플래시 스코프 상태 검증 request : 비동기 처리의 상태나 요청 스코프의 상태, 세션 스코프 상태 검증
ResultActions().andExpect() 실행 결과를 검증 인수 설정
ResultActions().andDo() 실행 결과를 처리 할 수 있는 인수 지정
log()
디버깅 레벨에서 로그를 출렵
print()
실행 결과를 출력
assert
assertArrayEquals(a,b) : 배열 a와 b가 같은지 확인
assertEquals(a,b) : a와 b가 같은지 확인
assertSame(a,b) : a와 b가 같은 객체인지 확인
assertTrie(a) : a가 True인지 확인
assertNotNull(a) : a가 null이 아닌지 확인