개발강의정리/Spring

[스프링 부트 개념과 활용] 4-7. 테스트 유틸

nineDeveloper 2019. 10. 30.
728x90

스프링 부트 개념과 활용

4. 스프링 부트 활용

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-07-testutil

 

freespringlecture/springboot-concept-uses

백기선님의 스프링 부트 개념과 활용 강의 내용 정리. Contribute to freespringlecture/springboot-concept-uses development by creating an account on GitHub.

github.com

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

스프링 부트 개념과 활용 - 인프런

스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게 이해하고 보다 적극적으로 사용할 수 있는 방법을 학습합니다. 중급 프레임워크 및 라이브러리 Spring Spring Boot 온라인 강의

www.inflearn.com

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

7. 테스트 유틸

OutputCapture

로그를 비롯해서 Console에 찍히는 모든 것을 다 캡쳐함

로그 메세지가 어떻게 찍히는지 테스트 해볼 수 있음

@RunWith(SpringRunner.class)
@WebMvcTest(SampleController.class)
public class SampleControllerWebMvcTest {

    @Rule
    public OutputCapture outputCapture = new OutputCapture();

    @MockBean
    SampleService mockSampleService;

    @Autowired
    MockMvc mockMvc;

    @Test
    public void hello() throws Exception {
        when(mockSampleService.getName()).thenReturn("ironman"); // MockBean으로 주입한 Mock Service

        mockMvc.perform(get("/hello")) // get 으로 /hello 요청하면
                .andExpect(status().isOk()) // status 는 200 이고
                .andExpect(content().string("hello ironman")) // content 는 hello ironman 이고
                .andDo(print()); // 해당 사항들을 print로 출력함

        assertThat(outputCapture.toString())
                .contains("SuperMan")
                .contains("Flash");
    }
}

TestPropertyValues

TestRestTemplate

ConfigFileApplicationContextInitializer

728x90

댓글

💲 추천 글