본문 바로가기
백엔드/스프링+boot

테스트 2

by 임지혁코딩 2024. 1. 3.

 * 코로나 줄서기 프로젝트 활용 

 

@SpringBootTest 

기본 에플리케이션 context load(통합 test시 사용) 

bootstrap with + extendwith 

 

value와 properties = {}로 직접 설정. 

args -> 직접 실행하는 command . 

WebEnvironment.Mock,None(은 tomcat이 실제로 돌지 않음)

.RANDOM_PORT,DEFINED_PORT는 직접 TOMCAT이 돈다. 

 

스프링에서 제공하는 Auto-configured Test 

한 가지 예시

@WebMvcTest . mockmvc 빈을 자동 설정하고 사용한다. 

(복습하자, mock mvc는 마치 http가 request한것처럼 따라하는 역할을 한다.)

 

일단 perform은, exception을 전송하는 method에서 가능하다. 

 

 

mockmvc를 통해서, 마치 "/" Request가 들어온것처럼 행동한다. 

그리고 그 값들을 expect하여, 이에 따라 출력한다

(test)를 꼭 붙여 method이름을 지키고, Exception을 던져 perform한다. 실 method와 이름을 변경한다.

 

perform이 이해가 안가서 찾아봤더니, exception을 던진다는 것을 깨달았다. 

즉 perform은, 이후 내용이 말이 안된다면 exception을 던진다. 

 

이러한 방식도 junit4부터 가능

 

 


@AutoConfigureMockMvc
@SpringBootTest
class BaseControllerTest {

/*    @Autowired
    private MockMvc mvc ;*/
    @Test
    void testRoot(@Autowired MockMvc mvc) throws Exception
    {

        //given

        //when

        //then
        mvc.perform(MockMvcRequestBuilders.get("/"))
                .andExpect(status().isOk())
                .andExpect(content().contentType(MediaType.TEXT_HTML_VALUE + ";charset=UTF-8"))
                .andExpect(content().string(Matchers.containsString("ㅎㅇindex야")))
                .andExpect(view().name("index"))
                .andDo(print()) ;

    }


}

이 꼴을 가장 많이 활용할 것이다.

 

given(Repository.respotiroymethod(~~).willReturn(false);

given이란 method를 통해, 뜩정 repository의 method가 실행되었다면. 그것이 willreturn(이 형태를 받을 것입니다). 

 

### 까먹으면 진짜 안되는 성질

valid를 진행하다가 .. @valid를 사용하면 내가 정한 exception보다 먼저 exception을 발생시킨다는 것을 잊고 있었다.. 

이걸 찾는데 굉장히 오래 걸렸다. 

 

 

 

'백엔드 > 스프링+boot' 카테고리의 다른 글

VIew, View template  (1) 2024.01.04
오류  (4) 2024.01.04
ERROR 처리  (0) 2024.01.02
리팩토링  (0) 2023.12.30
테스트  (0) 2023.12.29