테스트 코드 작성

yj k·2023년 3월 19일
0

SpringBoot

목록 보기
2/4

test 폴더에서 수행

mapper.xml까지 작성 후 작성

작성한 package와 동일하게 경로를 맞춰서 폴더 생성
MenuMapperTests 클래스 생성

@SpringBootTest
스프링부트의 테스트환경을 사용한다는 어노테이션
@ContextConfiguration(calsses = {Chap02CrudApplication.class})
어플리케이션 설정을 해당 설정 파일에서 가져오겠다는 의미

@Autowired
*의존성을 자동으로 주입해달라는 어노테이션
private MenuMapper menuMapper;

@Test
*test할 메소드 위에 붙여주어야함
public void 매퍼인터페이스의존성주입테스트(){

assertNotNull(menuMapper);
*전달하고 있는 값이 NotNull인지 확인하는 assertNotNull

}

*기능 테스트
pubilc void 전체메뉴조회용매퍼테스트(){

//given(인풋 데이터가 잇을 때)

//when
List<MenuDTO> menuList = menuMapper.findAllMenu();

//then
assertNotNull(menuList);
System.out.println(menuList);

}

-> 오류가 없다면 콘솔창에 값이 잘 담겨 나온다

@SpringBootTest
@ContextConfiguration(calsses = {Chap02CrudApplication.class})

@Autowired
private MenuService menuService;

@Test
public void 전체메뉴조회용서비스메소드_테스트(){

//given

//when
List<MenuDTO> menuList = menuService.findAllMenu();

//then
assertNotNull(menuList);
System.out.println(menuList);

}

컨트롤러 클래스 작성 후 수행

*웹 어플리케이션을 어플리케이션 서버에 배포하지 않고도 Spring Web의 동작을 재현할 수 있는 클래스
즉, WAS의 구동없이 Controller에 Request를 만들어 날리는 테스트 로직을 수행할 수 있다.

@Test
public void 전체메뉴조회용서비스메소드_테스트(){

//given

//when & then
mockMvc.perform(MockMvcRequestBuilders.get("/menu/list"))
	.andExpect(MockMvcResultMatchers.status().isOk());
	.andExpect(MockMvcResultMatchers.forwardedUrl("/menu/list"));
	.andDo(MockMvcResultHandlers.print());

}

0개의 댓글

관련 채용 정보