본문 바로가기
반응형

@ExtendWith3

[JUnit] 스프링부트 + junit5 환경에서 MockMvc로 컨트롤러 테스트하기 Mock이란? 사전적 의미로 '테스트를 위해 만든 모형'을 의미하고, 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking), 모킹한 객체를 메모리에서 얻어내는 과정을 목업(Mock-up)이라 한다. Mock의 필요성 객체를 테스트하려면 테스트 대상 객체가 메모리에 있어야 한다. 하지만 생성하는 데 복잡한 절차가 필요하거나 많은 시간 이 소요되는 객체가(ex. 서비스레이어) 있을 수 있고, 웹 어플리케이션의 컨트롤러처럼 WAS나 다른 소프트웨어의 도움이 반드시 필요한 객체도 있을 수 있다. 이러한 복잡한 객체를 테스트하기 위해 실제 객체와 비슷한 가짜 객체를 만들어 테스트에 필요한 기능만 기지도록 모킹하면 테스트가 쉬워진다. 또한 복잡한 의존성을 가지고 있을 때, 모킹한 객체를 .. 2021. 4. 29.
[Junit5] 스프링4에서 Junit5의 @ExtendWith(SpringExtension.class) 코드 사용하기 스프링4에서 Junit5의 @ExtendWith(SpringExtension.class) 코드 사용하기 자바 테스트 클래스 이름 위에 '@ExtendWith(SpringExtension.class)' 어노테이션을 붙이면 Spring TestContext Framework를 Junit5 프로그래밍에 포함 시킬 수 있다. 문제는 스프링4에서는 다음과 같이 해당 코드가 인식되지 않는 다는 것이다. 이러한 문제의 원인은 스프링4에서 Junit5 테스트를 위한 의존성이 없기 때문이다. 때문에 '@ExtendWith(SpringExtension.class)' 어노테이션을 사용하려면 pom.xml 파일에 아래 의존성을 추가해야한다. 의존성을 추가하고 다시 코드로 돌아가면, 코드가 정상적으로 작동되는 걸 확인할 수 있.. 2021. 4. 7.
[Spring Boot] 스프링 부트에서 테스트 코드와 롬복(lombok) 사용하기 스프링 부트에서 테스트 코드와 롬복(lombok) 사용하기 테스트 코드는 말 그대로 프로그램을 만들기 위해 작성한 소스코드를 테스트하는 코드입니다. 이러한 테스트 코드는 단위(Unit)테스트를 위해 작성됩니다. 단위 테스트는 소스 코드의 특정 모듈 즉, 특정 함수와 메소드가 의도된 대로 정확히 작동하는지 검증하는 절차입니다. 🌈단위 테스트를 위한 테스트 코드를 작성해야 하는 이유는 다음과 같습니다. 1.단위 테스트는 개발단계 초기에 문제를 발견하게 도와줍니다. 2.단위 테스트는 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업데이트 등의 작업을 할 때 기존 기능이 올바르게 작동하는지 확인할 수 있습니다. 3.단위 테스트는 기능에 대한 불확실성을 감소시킬 수 있습니다. 4.단위 테스트는 시스템에 대한 실.. 2021. 1. 5.
반응형