본문 바로가기

Test Code

(3)
Controller 계층에 관한 테스트 먼저 Controller 계층에 관한 이야기를 해보겠다.Controller 계층에 관한 이야기를 하기 전에 spring에서는 계층을 왜 나누는 걸까? 코드의 구조화, 유지 보수성, 테스트 용이성, 확장성, 재사용성 등 많은 이유가 있지만 주된 이유는 계층 간의 분리를 통해 코드를 구조화 시켜 SOLID 원칙을 적용시킬 수 있음에 중점을 둔다.너무 허황된 이야기일 수 있고 와닿지 않을 수 있다. 그렇다면 좀 더 현실적으로 이야기 해보자. Controller와 Service 계층을 나누는 이유는 위의 이유도 있겠지만 다음과 같은 이유도 존재한다. Controller의 주된 역할은 입력과 출력 즉, 통신이다. client에게 데이터를 받고 service에게 전달 후 가공된 데이터를 응답하는 징검다리 역할을 한..
TDD란? TDD란?Test Driven Development의 약자로 ‘테스트 주도 개발’이라고 한다반복 테스트를 이용한 소프트웨어 반복론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현애자일 방법론 중 하나인 eXtream Programming(XP)의 ‘Test-First’ 개념에 기반{ Red } 단계에서는 실패하는 테스트 코드를 먼저 작성한다.{ Green } 단계에서는 테스트 코드를 성공시키기 위한 최소한의 실제 코드를 작성한다.{ Blue } 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.일반 개발 방식 vs TDD 개발 방식TDD 개발 방식테스트 코드 작성 후 통과한 코드만을 코드 개발함이러한 반복적인 단계가 진행되면서 코드의 버그가 줄고 소..
Junit5란? JUnit5란?자바 개발자가 가장 많이 사용하는 테스팅 프레임 워크자바 현직 개발자 중 93% Junit 사용, 그 중 51%는 Mockito 사용Platform : 테스트를 실행해주는 런처 제공, TestEngine API 제공Jupiter : TestEngine API의 구현체로 JUnit5를 제공Vintage : JUnit 4와 3을 지원하는 TestEngine 구현체JUnit5 시작하기스프링 부트 프로젝트 2.2버전 이상부터는 기본적으로 의존성 추가스프링 부트 프로젝트가 아닐경우 다음과 같은 의존성 추가 org.junit.jupiter junit-jupiter-engine 5.6.2 testJunit5가 제공하는 Annotations📌 @overriding 애노테이션 (annotation)애노테..