Skip to content

Latest commit

 

History

History
42 lines (27 loc) · 2.32 KB

22.03.04_UnitTest.md

File metadata and controls

42 lines (27 loc) · 2.32 KB

22.03.04_UnitTest

목차

01.UnitTest

02.UnitTest 작성의 필요성

03.단위테스트의 문제점과 Stub

01.UnitTest

  • 단위 테스트는 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위
    • 여기서 모듈이란 하나의 기능 혹은 클래스와 같은 파일을 일컫는다.
  • 즉, 단위테스트는 애플리케이션을 구성하는 하나의 기능이 올바르게 동작하는지를 독립적으로 테스트하는 것으로 어떤 기능이 실행되면 어떤 결과가 나옴정도로 테스트를 진행

02.UnitTest 작성의 필요성

  • 일반적으로 실무에서 테스트 코드를 작성한다고 하면 거의 단위 테스트를 의미함
  • 단위 테스트는 해당 부분만 독립적으로 테스트하기 때문에 어떤 코드를 리팩토링하여도 빠르게 문제 여부를 확인할 수 있음
    • 테스팅에 대한 시간과 비용을 절감할 수 있음
    • 새로운 기능 추가 시에 수시로 빠르게 테스트 할 수 있음
    • 리팩토링 시에 안정성을 확보할 수 있음
    • 코드에 대한 문서가 될 수 있음
  • 그렇기 때문에 실무에서는 단위 테스트를 선호하며, 요즘 많이 사용되는 TDD(Test-Driven Development, 테스트 주도 개발)에서 이야기하는 테스트도 단위 테스트를 의미함
    • 직접 자성한 테스트 수시로 빠르게 돌리면서 문제를 파악할 수 있음

03.단위 테스트의 문제점과 Stub

  • 어떤 객체가 자체적으로 모든 일을 처리한다면 문제가 없겠지만,

    • 일반적인 애플리케이션에서는 1개의 기능을 처리하기 위해 다른 객체들과 메세지를 주고 받아야함

    • 하지만 앞서 설명했듯이 단위 테스트는 해당 모듈에 대한 독립적인 테스트이기 때문에 다른 객체와 메세지를 주고 받는 경우에 문제가 발생함

      • 그렇기 때문에 다른 객체 대신에 가짜 객체(Mock Object) 를 주입하여 어떤 결과를 반환하라고 정해진 답변을 준비 시키는 것을 Stub이라고 함

        • 예를 들어 데이터베이스에 새로운 데이터를 추가하는 코드를 테스트한다고 하면

          • 가짜 데이터베이스를 주입하여 insert처리 시에 반드시 1을 반환하도록 해주는 것 stub