Gidhub BE Developer

SpringBoot 테스트 : OutputCaptureRule - 출력되는 Log까지 테스트가 가능하다.

2020-07-13
goodGid

Prologue

  • SpringBoot 환경에서 출력되는 Log도 테스트가 가능하다.

Code

Controller

@Slf4j
@RestController
public class GoodGidController {

    @GetMapping("/")
    public String goodGid(){
        log.info("Slf4j");
        System.out.println("System Out");
        return "Heelo goodGid";
    }
}

OutputCaptureRule

  • OutputCaptureRule 클래스를 사용하면

    출력되는 Log에 대해 테스트가 가능하다.

    사용법은 굉장히 간단하다.

@RunWith(SpringRunner.class)
@WebMvcTest(GoodGidController.class)
public class GoodGidControllerTest_OutputCaptureRule {

    @Rule
    public OutputCaptureRule outputCaptureRule = new OutputCaptureRule();

    @Autowired
    MockMvc mockMvc;

    @Test
    public void goodGid() throws Exception {
  
        mockMvc.perform(get("/"))
               .andExpect(status().isOk())
               .andExpect(content().string("Hello goodGid"));

        assertThat(outputCaptureRule.toString().contains("Slf4j"));
        assertThat(outputCaptureRule.toString().contains("System Out"));
    }
}

Summary

  • OutputCaptureRule의 사용법은 굉장히 단순하다.

    하지만 출력되는 Log까지 테스트할 수 있다는 점은 굉장히 강력한 기능이라 생각한다.

    테스트 코드를 작성할 때 유용하게 활용해보자 !


Reference


Comments

Index