TDD

1 minute read

들어가며

이전에 TDD에 대한 글을 읽었었고 테스트를 하며 진행하는 프로젝트가 좋은 코드와 빠른 진행에 도움이 된다고 하였습니다.
하지만, 저는 테스트 주도 개발을 하지 않았고 방법도 알지 못했습니다.

개인 프로젝트를 진행하며 TDD를 도입하여 좋은 코드를 작성하고자 합니다.
막상 도입하려고 하니 어떤 방식으로 어떻게 진행을 해야하는지 궁금하였고,
그 방법에 대해 알아보려고 합니다.

TDD (Test Driven Development) 란?

테스트주도개발(TDD)은 테스트가 코드 작성을 주도하는 개발 방식입니다. 만들어야 하는 기능을 미리 간단한 코드로 작성하여 작성된 코드가 오류가
없는지 미리 확인해볼 수 있는 개발 프로세스입니다.

TDD의 장점

  • 디버깅 시간 단축
  • 높은 퀄리티의 코드 작성
  • 재설계 시간의 단축

TDD의 단점

  • 생산성 저하

TDD 종류 및 방식

1. JUnit
Java의 테스트 프레임워크이고 JUnit은 많이 접해봤을 것입니다.
java8로 업그레이드되며 JUnit5가 출시되었고 추가 기능 이외에 람다를
적극적으로 사용하도록 유도하였습니다.

예시)

junit

import static org.junit.jupiter.api.Assertions.*;
assertNotNull, assertEquals 를 쓰기 위해 import

assertNotNull : 해당 값이 null 이면 테스트 실패
assertEquals : 첫번째 값과 두번째 값이 같은지 비교

2. Mockito
Junit을 기반으로 하며, 가짜 객체를 지원해주는 프레임워크입니다.
mocking과 verification, stubbing을 도와주는 프레임워크이지 자체가 테스트
프레임워크는 아니라고 합니다.

mocking : 해당 코드가 의존하는 부분을 가짜(mock)로 대체하는 기법
verification : 행위검증
stubbing을 : 상태검증

Mockito를 이용하면 controller의 간단한 테스트도 가능합니다.
junit

메소드 설명
perform : return resultAction
andExpect : 예상값 검증
andDo : 요청에 대한 처리
andReturn : 테스트한 결과 객체를 받을때 사용

많이 사용하지 않은 상태에서 글을 작성하려고 하니 어떤 내용을 적는 것이 좋을지 잘 모르겠습니다. 그래서 이 부분은 개인 프로젝트를 진행하며 TDD를 사용하여 관련된 내용을 추가로 보완할 예정입니다.

Tags:

Categories:

Updated:

Leave a comment