Unit Test

Jinsung·2021년 12월 18일
0

Unit Test란

Unit test는 프로그래밍을 할때 소스코드의 특정 모듈(메서드)이 의도된 대로 정확히 작동하는지 검증하는 절차, 다시 말해 작성한 모든 메서드들에 대해서 테스트케이스를 작성하는 것을 의미합니다.

Unit Test의 장점

Unit Test를 진행하게 된다면 하나의 기능을 독립적으로 테스를 하며 코드 변경으로 인해 문제가 발생하여도 짧은 시간안에 해당 문제를 파악할 수 있습니다.

  • 리팩토링 시에 안정성을 확보
  • 테스팅에 대한 시간과 비용을 절감할 수 있다.
  • 코드에 대한 문서가 될 수 있다.

Unit Test 하는 방법

  • 1개의 테스트 함수에 대해서는 assert를 최소화해야한다.
  • 1개의 테스트 함수에는 1가지 개념만을 테스트하여야 한다.

좋고 깨끗한 테스트 코드는 FIRST라는 5가지 규칙을 따라야 한다.

  • Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.
  • Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
  • Repeatable: 어느 환경에서도 반복 가능해야 한다.
  • Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.
    Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.

Stub, Mock의 개념

Mock : Unit Test를 할 모듈과 메세지를 주고받는 객체를 대신할 가짜 객체

Stub : 실제 코드나 아직 준비되지 못한 코드를 호출하여 수행할 때 호출된 요청에 대해 미리 준비해둔 결과를 제공하는 테스트 메커니즘

Unit test는 하나의 모듈에 대한 독립적인 테스트이기 때문에 다른 객체와 메세지를 주고 받는 경우 문제가 발생, 이를 해결하기 위해 메세지를 주고 받는 다른 객체 대신에 Mock object(가짜객체)를 생성하여 테스트 한다.

생선한 Mock Object를 주입하고 어떤 결과를 반환하라고 정해진 결과 값을 준비하는데 이것을 Stub이라고 한다.

0개의 댓글