Java

[ java ] TDD; 테스트 주도 개발 간단한 설명, JUnit

JooKit 주킷 2020. 12. 26. 17:26
목차 접기
728x90
반응형

TDD ( Test Driven Development)

  • 테스트 주도 개발
    • 목표 주도 개발
    • 사용자 중심 개발
    • 인터페이스 중심 개발

TDD 사용 이유 ( 올바르게 작동하는 깔끔한 코드를 작성하기 위함 )

  • 목표 달성
  • 올바르게 작동하는 코드 작성
  • 깔끔한 코드 작성

How to

  • 올바르게 작동하는 코드를 만든다.
  • 깔끔하게 작동하는 코드로 Refactoring 한다.
    • 작동하는 것은 그대로 두고 내부 구현, 코드만 바꾸는 것을 의미한다.
      • 올바르게 작동한다는 것을 보장할 수 있는 Test Code가 필요하다.

Test Code를 언제 작성할까?

  • Test First : Test Code를 제일 먼저 작성하자는 것이 '테스트 주도 개발'의 주요 핵심이다.

간단한 3가지 과정을 거쳐서 실행된다. TDD 사이클이 존재한다.

  • Red : 실패하는 테스트 의미

    우리가 아무것도 안하고 테스트 코드를 작성한다.
    그러면 우리는 어떤 결과가 나오기를 기대한다.
    1 + 1 함수 add를 만든다고 할 때, 이 결과값은 2가 나온다고 하자.
    우리는 add라는 메서드를 만들지 않았기 때문에 2라는 결과를 얻을 수가 없을 것이다. 
    그래서 실패하게 된다.
  • Green : 우리는 add 라는 메서드를 만들어주고 이게 무조건 2를 돌려주게 하므로써 1+1이 2인 add라는 메서드를
    만들 수 있게 된다. 하지만 여기에 1과 3을 넣으면 또 실패하게 된다.

  • Refactoring : 그렇게 되기 전에 우리는 test code를 놓고 Refactoring을 한다.

    add가 x,y 를 받았을 때, x와 y를 더한 값을 돌려주도록 Refactoring을 하게되면 
    테스트는 그대로인 상태에서 내부구현은 바뀌게 된다. 
위의 예시는 너무나도 쉽고, 간단한 예제로 아주 복잡한 코드들을 작성할 때,
실행하는데 아주 시간이 오래 걸리는 코드를 작성할 때,
TDD는 아주 많은 도움이 된다. 

String Boot에서 기본적으로 제공되는 프레임워크가 JUnit 4이다.

개발 방법

  • 나는 이 코드를 어떻게 사용할거야. 라고 먼저 구현한 뒤,
  • 이 코드를 구현하기 위한 코드를 작성하도록 한다.
    • 어떤 생성자를 통해서 어떤 값을 얻고자 하는지 먼저 구현을 한 뒤, 이에 필요한 정보를
      어떻게 만들어서 반환해줄지를 결정한다.

TDD를 작성하면서.

  • 미래에 겪게될 문제점들, 의구심들을 test에서 바로바로 해결할 수 있는 기회를 만들 수 있다.
728x90
반응형
LIST